From 01b20ca56924e1e17b73c6b4706b5fa890fdb12b Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Thu, 26 Feb 2026 06:07:07 -0800 Subject: [PATCH 1/2] Fix settings window layout by removing empty NSToolbar and using fixed frame The empty NSToolbar with .unified style was allocating toolbar space that interfered with NavigationSplitView's sidebar/detail layout. Removing it and switching from min constraints to a fixed frame matches the working pattern used in pynb/mdnb. --- macos/Sources/App/macOS/AppDelegate.swift | 5 ----- macos/Sources/Features/Settings/SettingsView.swift | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/macos/Sources/App/macOS/AppDelegate.swift b/macos/Sources/App/macOS/AppDelegate.swift index 7ae09675c4..01d1f77f5f 100644 --- a/macos/Sources/App/macOS/AppDelegate.swift +++ b/macos/Sources/App/macOS/AppDelegate.swift @@ -1174,12 +1174,7 @@ class AppDelegate: NSObject, window.isReleasedWhenClosed = false window.collectionBehavior = [.moveToActiveSpace] - let toolbar = NSToolbar(identifier: "SettingsToolbar") - toolbar.showsBaselineSeparator = false - window.toolbar = toolbar window.toolbarStyle = .unified - - window.minSize = NSSize(width: 680, height: 450) window.contentViewController = NSHostingController(rootView: SettingsView()) settingsWindowController = NSWindowController(window: window) } diff --git a/macos/Sources/Features/Settings/SettingsView.swift b/macos/Sources/Features/Settings/SettingsView.swift index ff445a252d..18a849116c 100644 --- a/macos/Sources/Features/Settings/SettingsView.swift +++ b/macos/Sources/Features/Settings/SettingsView.swift @@ -17,7 +17,7 @@ struct SettingsView: View { .frame(maxWidth: .infinity, maxHeight: .infinity) } .navigationSplitViewStyle(.balanced) - .frame(minWidth: 680, minHeight: 450) + .frame(width: 680, height: 450) } } From 0ef3c3a54d48276c6cfa2dec024af442896bb7f3 Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Thu, 26 Feb 2026 07:33:33 -0800 Subject: [PATCH 2/2] Remove resizable style from settings window Fixed-size settings panel doesn't need to be resizable. --- macos/Sources/App/macOS/AppDelegate.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macos/Sources/App/macOS/AppDelegate.swift b/macos/Sources/App/macOS/AppDelegate.swift index 01d1f77f5f..bb37171980 100644 --- a/macos/Sources/App/macOS/AppDelegate.swift +++ b/macos/Sources/App/macOS/AppDelegate.swift @@ -1165,7 +1165,7 @@ class AppDelegate: NSObject, if settingsWindowController == nil { let window = SettingsWindow( contentRect: NSRect(x: 0, y: 0, width: 720, height: 500), - styleMask: [.titled, .closable, .miniaturizable, .resizable], + styleMask: [.titled, .closable, .miniaturizable], backing: .buffered, defer: false )