@@ -280,31 +280,31 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
280280 dividerThickness: splitView. dividerThickness
281281 )
282282
283- if window. contentMinSize != resolvedMinSize {
284- window. contentMinSize = resolvedMinSize
283+ Self . applyContentMinimum ( resolvedMinSize, to: window)
284+ }
285+
286+ internal static func applyContentMinimum( _ minimumSize: NSSize , to window: NSWindow ) {
287+ if window. contentMinSize != minimumSize {
288+ window. contentMinSize = minimumSize
285289 }
286290
287291 let currentContentSize = window. contentRect ( forFrameRect: window. frame) . size
288- guard currentContentSize. width < resolvedMinSize . width || currentContentSize. height < resolvedMinSize . height else { return }
292+ guard currentContentSize. width < minimumSize . width || currentContentSize. height < minimumSize . height else { return }
289293 window. setContentSize ( NSSize (
290- width: max ( currentContentSize. width, resolvedMinSize . width) ,
291- height: max ( currentContentSize. height, resolvedMinSize . height)
294+ width: max ( currentContentSize. width, minimumSize . width) ,
295+ height: max ( currentContentSize. height, minimumSize . height)
292296 ) )
293297 }
294298
295- private func setCollapsed(
296- _ isCollapsed: Bool ,
297- for splitItem: NSSplitViewItem ? ,
298- prepareWindowMinimumSize: ( ( ) -> Void ) ? = nil
299- ) {
299+ private func setCollapsed( _ isCollapsed: Bool , for splitItem: NSSplitViewItem ? ) {
300300 guard let splitItem else { return }
301301
302302 if splitItem. isCollapsed == isCollapsed {
303303 recomputeWindowMinimumSize ( )
304304 return
305305 }
306306
307- prepareWindowMinimumSize ? ( )
307+ prepareWindowMinimum ( forTogglingPane : splitItem , toCollapsed : isCollapsed )
308308
309309 guard view. window? . isVisible == true else {
310310 splitItem. isCollapsed = isCollapsed
@@ -319,6 +319,16 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
319319 }
320320 }
321321
322+ private func prepareWindowMinimum( forTogglingPane splitItem: NSSplitViewItem , toCollapsed isCollapsed: Bool ) {
323+ if splitItem === sidebarSplitItem {
324+ recomputeWindowMinimumSize ( sidebarCollapsed: isCollapsed)
325+ } else if splitItem === inspectorSplitItem {
326+ recomputeWindowMinimumSize ( inspectorCollapsed: isCollapsed)
327+ } else {
328+ recomputeWindowMinimumSize ( )
329+ }
330+ }
331+
322332 override func viewWillAppear( ) {
323333 super. viewWillAppear ( )
324334 guard let window = view. window else { return }
@@ -435,10 +445,7 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
435445 }
436446
437447 let collapseSidebar = newSession. driver == nil
438- setCollapsed ( collapseSidebar, for: sidebarSplitItem) { [ weak self] in
439- guard !collapseSidebar else { return }
440- self ? . recomputeWindowMinimumSize ( sidebarCollapsed: false )
441- }
448+ setCollapsed ( collapseSidebar, for: sidebarSplitItem)
442449 rebuildPanes ( )
443450 }
444451
@@ -604,16 +611,12 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
604611
605612 func showInspector( ) {
606613 materializeInspectorIfNeeded ( )
607- setCollapsed ( false , for: inspectorSplitItem) { [ weak self] in
608- self ? . recomputeWindowMinimumSize ( inspectorCollapsed: false )
609- }
614+ setCollapsed ( false , for: inspectorSplitItem)
610615 UserDefaults . standard. set ( true , forKey: Self . inspectorPresentedKey)
611616 }
612617
613618 func hideInspector( ) {
614- setCollapsed ( true , for: inspectorSplitItem) { [ weak self] in
615- self ? . recomputeWindowMinimumSize ( inspectorCollapsed: true )
616- }
619+ setCollapsed ( true , for: inspectorSplitItem)
617620 UserDefaults . standard. set ( false , forKey: Self . inspectorPresentedKey)
618621 }
619622
@@ -640,9 +643,7 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
640643
641644 if sidebarSplitItem? . isCollapsed == true {
642645 sidebarState. selectedSidebarTab = tab
643- setCollapsed ( false , for: sidebarSplitItem) { [ weak self] in
644- self ? . recomputeWindowMinimumSize ( sidebarCollapsed: false )
645- }
646+ setCollapsed ( false , for: sidebarSplitItem)
646647 } else if sidebarState. selectedSidebarTab == tab {
647648 setCollapsed ( true , for: sidebarSplitItem)
648649 } else {
0 commit comments