Skip to content

Commit 3f5cd70

Browse files
committed
Updated logic to when no panels are active
- If no panels are active, and interface hasn't been hidden, all panels will show when toggle interface is clicked - Renamed objc functions with prefix 'objc' - Re-added resetStoredInterfaceCollapseState - turns out it was necessary
1 parent 775ec99 commit 3f5cd70

3 files changed

Lines changed: 27 additions & 10 deletions

File tree

CodeEdit/Features/Documents/Controllers/CodeEditWindowController+Toolbar.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ extension CodeEditWindowController {
9292
toolbarItem.toolTip = "Hide or show the Navigator"
9393
toolbarItem.isBordered = true
9494
toolbarItem.target = self
95-
toolbarItem.action = #selector(self.toggleFirstPanel)
95+
toolbarItem.action = #selector(self.objcToggleFirstPanel)
9696
toolbarItem.image = NSImage(
9797
systemSymbolName: "sidebar.leading",
9898
accessibilityDescription: nil
@@ -106,7 +106,7 @@ extension CodeEditWindowController {
106106
toolbarItem.toolTip = "Hide or show the Inspectors"
107107
toolbarItem.isBordered = true
108108
toolbarItem.target = self
109-
toolbarItem.action = #selector(self.toggleLastPanel)
109+
toolbarItem.action = #selector(self.objcToggleLastPanel)
110110
toolbarItem.image = NSImage(
111111
systemSymbolName: "sidebar.trailing",
112112
accessibilityDescription: nil

CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,19 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs
221221
let prevInsp = prevInspectorCollapsed,
222222
let prevUtil = prevUtilityAreaCollapsed,
223223
let prevTool = prevToolbarCollapsed
224-
else { return false }
224+
else {
225+
return navigatorCollapsed && navigatorCollapsed && toolbarCollapsed && utilityAreaCollapsed
226+
}
227+
228+
let stillHidden = (!prevNav && navigatorCollapsed) ||
229+
(!prevInsp && inspectorCollapsed) ||
230+
(!prevUtil && utilityAreaCollapsed) ||
231+
(!prevTool && toolbarCollapsed)
232+
233+
if !stillHidden { resetStoredInterfaceCollapseState() }
225234

226235
// True when any panel that was previously visible is collapsed
227-
return (!prevNav && navigatorCollapsed) ||
228-
(!prevInsp && inspectorCollapsed) ||
229-
(!prevUtil && utilityAreaCollapsed) ||
230-
(!prevTool && toolbarCollapsed)
236+
return stillHidden
231237
}
232238

233239
/// Function for toggling the interface elements on or off
@@ -287,7 +293,10 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs
287293
// If ShouldHide, everything should close
288294
if shouldHide { return true }
289295

290-
// If currently visible and !shouldHide, it should not collapse
296+
// If currently collapsed, and there is no previous state, show it.
297+
if previouslyCollapsed == nil && currentlyCollapsed { return false }
298+
299+
// If currently visible and !shouldHide, it should not collapse.
291300
if !currentlyCollapsed && !shouldHide { return false }
292301

293302
// If we have a previous state, return that one.
@@ -304,4 +313,12 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs
304313
prevUtilityAreaCollapsed = workspace?.utilityAreaModel?.isCollapsed
305314
prevToolbarCollapsed = toolbarCollapsed
306315
}
316+
317+
/// Function for resetting the stored interface visibility states
318+
func resetStoredInterfaceCollapseState() {
319+
prevNavigatorCollapsed = nil
320+
prevInspectorCollapsed = nil
321+
prevUtilityAreaCollapsed = nil
322+
prevToolbarCollapsed = nil
323+
}
307324
}

CodeEdit/Features/Documents/Controllers/CodeEditWindowControllerExtensions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Combine
1010

1111
extension CodeEditWindowController {
1212
@objc
13-
func toggleFirstPanel() {
13+
func objcToggleFirstPanel() {
1414
toggleFirstPanel(shouldAnimate: true)
1515
}
1616

@@ -30,7 +30,7 @@ extension CodeEditWindowController {
3030
}
3131

3232
@objc
33-
func toggleLastPanel() {
33+
func objcToggleLastPanel() {
3434
toggleLastPanel(shouldAnimate: true)
3535
}
3636

0 commit comments

Comments
 (0)