Save Sidebar open/collapsed state between launches. Fixes #2707

This commit is contained in:
Sean Santry
2022-01-19 13:06:08 -05:00
committed by Brent Simmons
parent a82a1e16f9
commit 3b3b228d5d
2 changed files with 9 additions and 0 deletions

View File

@@ -1242,6 +1242,8 @@ private extension MainWindowController {
let widths = splitView.arrangedSubviews.map{ Int(floor($0.frame.width)) }
state[MainWindowController.mainWindowWidthsStateKey] = widths
state[UserInfoKey.isSidebarHidden] = sidebarSplitViewItem?.isCollapsed
}
func restoreSplitViewState(from state: [AnyHashable : Any]) {
@@ -1264,6 +1266,12 @@ private extension MainWindowController {
splitView.setPosition(CGFloat(sidebarWidth), ofDividerAt: 0)
splitView.setPosition(CGFloat(sidebarWidth + dividerThickness + timelineWidth), ofDividerAt: 1)
let isSidebarHidden = state[UserInfoKey.isSidebarHidden] as? Bool ?? false
if !(sidebarSplitViewItem?.isCollapsed ?? false) && isSidebarHidden {
sidebarSplitViewItem?.isCollapsed = true
}
}
func buildToolbarButton(_ itemIdentifier: NSToolbarItem.Identifier, _ title: String, _ image: NSImage, _ selector: String) -> NSToolbarItem {

View File

@@ -25,5 +25,6 @@ struct UserInfoKey {
static let selectedFeedsState = "selectedFeedsState"
static let isShowingExtractedArticle = "isShowingExtractedArticle"
static let articleWindowScrollY = "articleWindowScrollY"
static let isSidebarHidden = "isSidebarHidden"
}