From cc99524dce513f5f4bf63e310a45735415ea17d3 Mon Sep 17 00:00:00 2001 From: Ethan Wong Date: Fri, 26 May 2023 13:34:15 +0800 Subject: [PATCH] =?UTF-8?q?Do=20not=20make=20the=20sidebar=20first=20respo?= =?UTF-8?q?nder=20when=20it=E2=80=99s=20collapsed.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/MainWindow/MainWindowController.swift | 4 +++- Mac/MainWindow/Sidebar/SidebarViewController.swift | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Mac/MainWindow/MainWindowController.swift b/Mac/MainWindow/MainWindowController.swift index 514ad4040..f8518d35a 100644 --- a/Mac/MainWindow/MainWindowController.swift +++ b/Mac/MainWindow/MainWindowController.swift @@ -87,7 +87,9 @@ enum TimelineSourceMode { detailSplitViewItem?.minimumThickness = CGFloat(MainWindowController.detailViewMinimumThickness) - sidebarViewController = splitViewController?.splitViewItems[0].viewController as? SidebarViewController + let sidebarSplitViewItem = splitViewController?.splitViewItems[0] + sidebarViewController = sidebarSplitViewItem?.viewController as? SidebarViewController + sidebarViewController!.splitViewItem = sidebarSplitViewItem sidebarViewController!.delegate = self timelineContainerViewController = splitViewController?.splitViewItems[1].viewController as? TimelineContainerViewController diff --git a/Mac/MainWindow/Sidebar/SidebarViewController.swift b/Mac/MainWindow/Sidebar/SidebarViewController.swift index 0d571f8ed..a79f899f7 100644 --- a/Mac/MainWindow/Sidebar/SidebarViewController.swift +++ b/Mac/MainWindow/Sidebar/SidebarViewController.swift @@ -29,6 +29,8 @@ protocol SidebarDelegate: AnyObject { weak var delegate: SidebarDelegate? + weak var splitViewItem: NSSplitViewItem? + private let rebuildTreeAndRestoreSelectionQueue = CoalescingQueue(name: "Rebuild Tree Queue", interval: 1.0) let treeControllerDelegate = WebFeedTreeControllerDelegate() lazy var treeController: TreeController = { @@ -323,6 +325,7 @@ protocol SidebarDelegate: AnyObject { } func focus() { + if splitViewItem?.isCollapsed == true { return } outlineView.window?.makeFirstResponderUnlessDescendantIsFirstResponder(outlineView) }