mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-17 09:16:11 +03:00
Toggling visibility is now ignored when in fullscreen mode.
This commit is contained in:

committed by
Mitchell Hashimoto

parent
c5508e7d19
commit
8d31f6ce2e
@ -709,11 +709,21 @@ class AppDelegate: NSObject,
|
|||||||
|
|
||||||
/// Toggles visibility of all Ghosty Terminal windows. When hidden, activates Ghostty as the frontmost application
|
/// Toggles visibility of all Ghosty Terminal windows. When hidden, activates Ghostty as the frontmost application
|
||||||
@IBAction func toggleVisibility(_ sender: Any) {
|
@IBAction func toggleVisibility(_ sender: Any) {
|
||||||
|
// Toggle visibility doesn't do anything if the focused window is native
|
||||||
|
// fullscreen.
|
||||||
|
guard let keyWindow = NSApp.keyWindow,
|
||||||
|
!keyWindow.styleMask.contains(.fullScreen) else { return }
|
||||||
|
|
||||||
// If we have focus, then we hide all windows.
|
// If we have focus, then we hide all windows.
|
||||||
if NSApp.isActive {
|
if NSApp.isActive {
|
||||||
// We need to keep track of the windows that were visible because we only
|
// We need to keep track of the windows that were visible because we only
|
||||||
// want to bring back these windows if we remove the toggle.
|
// want to bring back these windows if we remove the toggle.
|
||||||
self.hiddenWindows = NSApp.windows.filter { $0.isVisible }.map { Weak($0) }
|
//
|
||||||
|
// We also ignore fullscreen windows because they don't hide anyways.
|
||||||
|
self.hiddenWindows = NSApp.windows.filter {
|
||||||
|
$0.isVisible &&
|
||||||
|
!$0.styleMask.contains(.fullScreen)
|
||||||
|
}.map { Weak($0) }
|
||||||
NSApp.hide(nil)
|
NSApp.hide(nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -470,6 +470,8 @@ pub const Action = union(enum) {
|
|||||||
/// Ghostty becomes focused. When hiding all windows, focus is yielded
|
/// Ghostty becomes focused. When hiding all windows, focus is yielded
|
||||||
/// to the next application as determined by the OS.
|
/// to the next application as determined by the OS.
|
||||||
///
|
///
|
||||||
|
/// Note: When the focused surface is fullscreen, this method does nothing.
|
||||||
|
///
|
||||||
/// This currently only works on macOS.
|
/// This currently only works on macOS.
|
||||||
toggle_visibility: void,
|
toggle_visibility: void,
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user