diff --git a/macos/Sources/AppDelegate.swift b/macos/Sources/AppDelegate.swift index c582b4628..4415dbf3f 100644 --- a/macos/Sources/AppDelegate.swift +++ b/macos/Sources/AppDelegate.swift @@ -33,6 +33,7 @@ class AppDelegate: NSObject, @IBOutlet private var menuCopy: NSMenuItem? @IBOutlet private var menuPaste: NSMenuItem? + @IBOutlet private var menuSelectAll: NSMenuItem? @IBOutlet private var menuToggleFullScreen: NSMenuItem? @IBOutlet private var menuZoomSplit: NSMenuItem? @@ -257,6 +258,7 @@ class AppDelegate: NSObject, syncMenuShortcut(action: "copy_to_clipboard", menuItem: self.menuCopy) syncMenuShortcut(action: "paste_from_clipboard", menuItem: self.menuPaste) + syncMenuShortcut(action: "select_all", menuItem: self.menuSelectAll) syncMenuShortcut(action: "toggle_fullscreen", menuItem: self.menuToggleFullScreen) syncMenuShortcut(action: "toggle_split_zoom", menuItem: self.menuZoomSplit) diff --git a/macos/Sources/Ghostty/SurfaceView.swift b/macos/Sources/Ghostty/SurfaceView.swift index bd4a2b0a5..473a3a884 100644 --- a/macos/Sources/Ghostty/SurfaceView.swift +++ b/macos/Sources/Ghostty/SurfaceView.swift @@ -1011,6 +1011,7 @@ extension Ghostty { AppDelegate.logger.warning("action failed action=\(action)") } } + @IBAction func pasteAsPlainText(_ sender: Any?) { guard let surface = self.surface else { return } @@ -1019,6 +1020,14 @@ extension Ghostty { AppDelegate.logger.warning("action failed action=\(action)") } } + + @IBAction override func selectAll(_ sender: Any?) { + guard let surface = self.surface else { return } + let action = "select_all" + if (!ghostty_surface_binding_action(surface, action, UInt(action.count))) { + AppDelegate.logger.warning("action failed action=\(action)") + } + } // MARK: NSTextInputClient diff --git a/macos/Sources/MainMenu.xib b/macos/Sources/MainMenu.xib index 767bf7f8c..2e6041bed 100644 --- a/macos/Sources/MainMenu.xib +++ b/macos/Sources/MainMenu.xib @@ -35,6 +35,7 @@ + @@ -169,6 +170,12 @@ + + + + + +