From 3b3b228d5d447ef6ba8e69fe7830e45161cede1c Mon Sep 17 00:00:00 2001 From: Sean Santry Date: Wed, 19 Jan 2022 13:06:08 -0500 Subject: [PATCH] Save Sidebar open/collapsed state between launches. Fixes #2707 --- Mac/MainWindow/MainWindowController.swift | 8 ++++++++ Shared/UserInfoKey.swift | 1 + 2 files changed, 9 insertions(+) diff --git a/Mac/MainWindow/MainWindowController.swift b/Mac/MainWindow/MainWindowController.swift index 72c356ede..6f101471d 100644 --- a/Mac/MainWindow/MainWindowController.swift +++ b/Mac/MainWindow/MainWindowController.swift @@ -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 { diff --git a/Shared/UserInfoKey.swift b/Shared/UserInfoKey.swift index f46f5ca8b..07d850895 100644 --- a/Shared/UserInfoKey.swift +++ b/Shared/UserInfoKey.swift @@ -25,5 +25,6 @@ struct UserInfoKey { static let selectedFeedsState = "selectedFeedsState" static let isShowingExtractedArticle = "isShowingExtractedArticle" static let articleWindowScrollY = "articleWindowScrollY" + static let isSidebarHidden = "isSidebarHidden" }