diff --git a/macos/Sources/AppDelegate.swift b/macos/Sources/AppDelegate.swift index 8cd035991..4ff6dcb51 100644 --- a/macos/Sources/AppDelegate.swift +++ b/macos/Sources/AppDelegate.swift @@ -27,6 +27,7 @@ class AppDelegate: NSObject, ObservableObject, NSApplicationDelegate, GhosttyApp @IBOutlet private var menuCopy: NSMenuItem? @IBOutlet private var menuPaste: NSMenuItem? + @IBOutlet private var menuZoomSplit: NSMenuItem? @IBOutlet private var menuPreviousSplit: NSMenuItem? @IBOutlet private var menuNextSplit: NSMenuItem? @IBOutlet private var menuSelectSplitAbove: NSMenuItem? @@ -138,6 +139,7 @@ class AppDelegate: NSObject, ObservableObject, NSApplicationDelegate, GhosttyApp syncMenuShortcut(action: "copy_to_clipboard", menuItem: self.menuCopy) syncMenuShortcut(action: "paste_from_clipboard", menuItem: self.menuPaste) + syncMenuShortcut(action: "toggle_split_zoom", menuItem: self.menuZoomSplit) syncMenuShortcut(action: "goto_split:previous", menuItem: self.menuPreviousSplit) syncMenuShortcut(action: "goto_split:next", menuItem: self.menuNextSplit) syncMenuShortcut(action: "goto_split:top", menuItem: self.menuSelectSplitAbove) @@ -234,6 +236,11 @@ class AppDelegate: NSObject, ObservableObject, NSApplicationDelegate, GhosttyApp ghostty.split(surface: surface, direction: GHOSTTY_SPLIT_DOWN) } + @IBAction func splitZoom(_ sender: Any) { + guard let surface = focusedSurface() else { return } + ghostty.splitToggleZoom(surface: surface) + } + @IBAction func splitMoveFocusPrevious(_ sender: Any) { splitMoveFocus(direction: .previous) } diff --git a/macos/Sources/Ghostty/AppState.swift b/macos/Sources/Ghostty/AppState.swift index 2eccd3c2a..4b7b85d82 100644 --- a/macos/Sources/Ghostty/AppState.swift +++ b/macos/Sources/Ghostty/AppState.swift @@ -170,6 +170,13 @@ extension Ghostty { ghostty_surface_split_focus(surface, direction.toNative()) } + func splitToggleZoom(surface: ghostty_surface_t) { + let action = "toggle_split_zoom" + if (!ghostty_surface_binding_action(surface, action, UInt(action.count))) { + AppDelegate.logger.warning("action failed action=\(action)") + } + } + // Called when the selected keyboard changes. We have to notify Ghostty so that // it can reload the keyboard mapping for input. @objc private func keyboardSelectionDidChange(notification: NSNotification) { diff --git a/macos/Sources/MainMenu.xib b/macos/Sources/MainMenu.xib index 1de314192..a65d314f2 100644 --- a/macos/Sources/MainMenu.xib +++ b/macos/Sources/MainMenu.xib @@ -29,6 +29,7 @@ + @@ -162,6 +163,12 @@ + + + + + +