diff --git a/src/api-wrappers/HelperExtensions.swift b/src/api-wrappers/HelperExtensions.swift index 94f23330..9a22a859 100644 --- a/src/api-wrappers/HelperExtensions.swift +++ b/src/api-wrappers/HelperExtensions.swift @@ -189,3 +189,11 @@ extension Optional where Wrapped == String { return (self ?? "").localizedStandardCompare(string ?? "") } } + +extension NSWindow { + func hideAppIfLastWindowIsClosed() { + if (!NSApp.windows.contains { $0.isVisible && $0.className != "NSStatusBarWindow" && $0.windowNumber != windowNumber}) { + App.shared.hide(nil) + } + } +} diff --git a/src/ui/FeedbackWindow.swift b/src/ui/FeedbackWindow.swift index 51590065..294d64fd 100644 --- a/src/ui/FeedbackWindow.swift +++ b/src/ui/FeedbackWindow.swift @@ -125,4 +125,9 @@ class FeedbackWindow: NSWindow { } return result } + + override func close() { + hideAppIfLastWindowIsClosed() + super.close() + } } diff --git a/src/ui/preferences-window/PreferencesWindow.swift b/src/ui/preferences-window/PreferencesWindow.swift index 8ae16151..bb0e45d6 100644 --- a/src/ui/preferences-window/PreferencesWindow.swift +++ b/src/ui/preferences-window/PreferencesWindow.swift @@ -96,4 +96,9 @@ class PreferencesWindow: NSWindow, NSToolbarDelegate { func toolbarSelectableItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { return Array(toolbarItems.keys) } + + override func close() { + hideAppIfLastWindowIsClosed() + super.close() + } }