From 8f57ae251b639c50e97a7e6b531f81d2cf7418ab Mon Sep 17 00:00:00 2001 From: Yuxin Qiao <104957188+Yuxin-Qiao@users.noreply.github.com> Date: Sat, 15 Aug 2026 11:32:27 +0800 Subject: [PATCH 1/2] Enable settings window minimization --- Sources/CodexBar/PreferencesView.swift | 3 +++ .../SettingsWindowAppearanceTests.swift | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/Sources/CodexBar/PreferencesView.swift b/Sources/CodexBar/PreferencesView.swift index 984e9810b7..67c01cc7c9 100644 --- a/Sources/CodexBar/PreferencesView.swift +++ b/Sources/CodexBar/PreferencesView.swift @@ -371,6 +371,9 @@ final class SettingsWindowAppearanceView: NSView { if !window.styleMask.contains(.resizable) { window.styleMask.insert(.resizable) } + if !window.styleMask.contains(.miniaturizable) { + window.styleMask.insert(.miniaturizable) + } if !window.titlebarAppearsTransparent { window.titlebarAppearsTransparent = true } diff --git a/Tests/CodexBarTests/SettingsWindowAppearanceTests.swift b/Tests/CodexBarTests/SettingsWindowAppearanceTests.swift index 444705d970..b4b6de624d 100644 --- a/Tests/CodexBarTests/SettingsWindowAppearanceTests.swift +++ b/Tests/CodexBarTests/SettingsWindowAppearanceTests.swift @@ -198,6 +198,22 @@ struct SettingsWindowAppearanceTests { #expect(window.styleMask.contains(.resizable)) } + @Test + func `settings window style enables minimization`() { + let bridge = SettingsWindowAppearanceView() + let window = NSWindow( + contentRect: NSRect(x: 0, y: 0, width: 400, height: 300), + styleMask: [.titled], + backing: .buffered, + defer: false) + + window.contentView = bridge + + #expect(window.styleMask.contains(.miniaturizable)) + #expect(window.isMiniaturizable) + #expect(window.standardWindowButton(.miniaturizeButton)?.isEnabled == true) + } + @Test func `settings window extends content behind the titlebar for the edge-to-edge sidebar`() { let bridge = SettingsWindowAppearanceView() From 21d31e150deab023d3bae9b5639bb1d8609331a8 Mon Sep 17 00:00:00 2001 From: Yuxin Qiao <104957188+Yuxin-Qiao@users.noreply.github.com> Date: Sat, 15 Aug 2026 12:21:50 +0800 Subject: [PATCH 2/2] Add settings minimize runtime proof --- docs/screenshots/settings-minimize-after.png | Bin 0 -> 24891 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/screenshots/settings-minimize-after.png diff --git a/docs/screenshots/settings-minimize-after.png b/docs/screenshots/settings-minimize-after.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad4c01bf05126c2b7494399850972a1acfbd521 GIT binary patch literal 24891 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

=$V>6H=;% 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 QBFSFko{nmPiiQ9G0npHZ1ONa4 literal 0 HcmV?d00001