mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-10-02 07:58:37 +00:00
"Return to Default Size" implementation
Added support for "Return To Default Size"
This commit is contained in:

committed by
Mitchell Hashimoto

parent
9681009650
commit
f73c1a2c59
@@ -753,6 +753,16 @@ class AppDelegate: NSObject,
|
||||
quickController.toggle()
|
||||
}
|
||||
|
||||
@IBAction func returnToDefaultSize(_ sender: Any) {
|
||||
guard let window = NSApp.keyWindow else { return }
|
||||
let currentOrigin = window.frame.origin
|
||||
let newFrame = NSRect(
|
||||
origin: currentOrigin,
|
||||
size: WindowConfig.defaultSize
|
||||
)
|
||||
window.setFrame(newFrame, display: true)
|
||||
}
|
||||
|
||||
/// Toggles visibility of all Ghosty Terminal windows. When hidden, activates Ghostty as the frontmost application
|
||||
@IBAction func toggleVisibility(_ sender: Any) {
|
||||
// If we have focus, then we hide all windows.
|
||||
@@ -804,6 +814,10 @@ class AppDelegate: NSObject,
|
||||
}
|
||||
}
|
||||
|
||||
private enum WindowConfig {
|
||||
static let defaultSize = CGSize(width: 800, height: 600)
|
||||
}
|
||||
|
||||
private struct ToggleVisibilityState {
|
||||
let hiddenWindows: [Weak<NSWindow>]
|
||||
let keyWindow: Weak<NSWindow>?
|
||||
@@ -833,3 +847,23 @@ class AppDelegate: NSObject,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension AppDelegate: NSMenuItemValidation {
|
||||
func validateMenuItem(_ item: NSMenuItem) -> Bool {
|
||||
switch item.action {
|
||||
case #selector(returnToDefaultSize):
|
||||
guard let focusedWindow = NSApp.keyWindow else {
|
||||
return false
|
||||
}
|
||||
if focusedWindow.styleMask.contains(.fullScreen) {
|
||||
return false
|
||||
}
|
||||
if focusedWindow.frame.size == WindowConfig.defaultSize {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
default:
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user