mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
Refactor to hide only BaseTerminalController windows
This also slightly changes the code, as the duplication of the for loop was making it harder to read now. I think technically slightly less efficient, but this is hardly a hot code path, so should be fine imo.
This commit is contained in:

committed by
Mitchell Hashimoto

parent
2dbd46096f
commit
af48c1af0c
@ -570,26 +570,20 @@ class AppDelegate: NSObject,
|
||||
self.menuQuickTerminal?.state = if (quickController.visible) { .on } else { .off }
|
||||
}
|
||||
|
||||
/// Toggles the visibility of all Ghostty windows
|
||||
/// Toggles visibility of all Ghosty Terminal windows. When hidden, activates Ghostty as the frontmost application
|
||||
@IBAction func toggleVisibility(_ sender: Any) {
|
||||
let configurationErrorsWindow = ConfigurationErrorsController.sharedInstance.window
|
||||
|
||||
if isVisible {
|
||||
// Hide all windows
|
||||
for window in NSApp.windows {
|
||||
if window !== configurationErrorsWindow {
|
||||
window.orderOut(nil)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Show all windows
|
||||
for window in NSApp.windows {
|
||||
if window !== configurationErrorsWindow {
|
||||
window.makeKeyAndOrderFront(nil)
|
||||
}
|
||||
for controller in NSApp.windows.compactMap({ $0.windowController as? BaseTerminalController }) {
|
||||
if isVisible {
|
||||
controller.window?.orderOut(nil)
|
||||
} else {
|
||||
controller.window?.makeKeyAndOrderFront(nil)
|
||||
}
|
||||
}
|
||||
|
||||
if !isVisible {
|
||||
NSApp.activate(ignoringOtherApps: true)
|
||||
}
|
||||
|
||||
isVisible.toggle()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user