macos: add split zoom to menu

This commit is contained in:
Mitchell Hashimoto
2023-09-10 09:30:42 -07:00
parent 1d0e2c43b5
commit ef5c5d1c0b
3 changed files with 21 additions and 0 deletions

View File

@ -27,6 +27,7 @@ class AppDelegate: NSObject, ObservableObject, NSApplicationDelegate, GhosttyApp
@IBOutlet private var menuCopy: NSMenuItem? @IBOutlet private var menuCopy: NSMenuItem?
@IBOutlet private var menuPaste: NSMenuItem? @IBOutlet private var menuPaste: NSMenuItem?
@IBOutlet private var menuZoomSplit: NSMenuItem?
@IBOutlet private var menuPreviousSplit: NSMenuItem? @IBOutlet private var menuPreviousSplit: NSMenuItem?
@IBOutlet private var menuNextSplit: NSMenuItem? @IBOutlet private var menuNextSplit: NSMenuItem?
@IBOutlet private var menuSelectSplitAbove: 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: "copy_to_clipboard", menuItem: self.menuCopy)
syncMenuShortcut(action: "paste_from_clipboard", menuItem: self.menuPaste) 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:previous", menuItem: self.menuPreviousSplit)
syncMenuShortcut(action: "goto_split:next", menuItem: self.menuNextSplit) syncMenuShortcut(action: "goto_split:next", menuItem: self.menuNextSplit)
syncMenuShortcut(action: "goto_split:top", menuItem: self.menuSelectSplitAbove) 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) 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) { @IBAction func splitMoveFocusPrevious(_ sender: Any) {
splitMoveFocus(direction: .previous) splitMoveFocus(direction: .previous)
} }

View File

@ -170,6 +170,13 @@ extension Ghostty {
ghostty_surface_split_focus(surface, direction.toNative()) 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 // Called when the selected keyboard changes. We have to notify Ghostty so that
// it can reload the keyboard mapping for input. // it can reload the keyboard mapping for input.
@objc private func keyboardSelectionDidChange(notification: NSNotification) { @objc private func keyboardSelectionDidChange(notification: NSNotification) {

View File

@ -29,6 +29,7 @@
<outlet property="menuSelectSplitRight" destination="upj-mc-L7X" id="nLY-o1-lky"/> <outlet property="menuSelectSplitRight" destination="upj-mc-L7X" id="nLY-o1-lky"/>
<outlet property="menuSplitHorizontal" destination="VUR-Ld-nLx" id="RxO-Zw-ovb"/> <outlet property="menuSplitHorizontal" destination="VUR-Ld-nLx" id="RxO-Zw-ovb"/>
<outlet property="menuSplitVertical" destination="UDZ-4y-6xL" id="fgZ-Wb-8OR"/> <outlet property="menuSplitVertical" destination="UDZ-4y-6xL" id="fgZ-Wb-8OR"/>
<outlet property="menuZoomSplit" destination="oPd-mn-IEH" id="wTu-jK-egI"/>
</connections> </connections>
</customObject> </customObject>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/> <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
@ -162,6 +163,12 @@
</connections> </connections>
</menuItem> </menuItem>
<menuItem isSeparatorItem="YES" id="rlu-tP-x0P"/> <menuItem isSeparatorItem="YES" id="rlu-tP-x0P"/>
<menuItem title="Zoom Split" id="oPd-mn-IEH">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitZoom:" target="bbz-4X-AYv" id="h3L-kI-kTJ"/>
</connections>
</menuItem>
<menuItem title="Select Previous Split" id="Lic-px-1wg"> <menuItem title="Select Previous Split" id="Lic-px-1wg">
<modifierMask key="keyEquivalentModifierMask"/> <modifierMask key="keyEquivalentModifierMask"/>
<connections> <connections>