From cc4d4eeaca0eb2e79722738d7e7e99429a017fe2 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 18 May 2025 14:23:38 +0530 Subject: [PATCH] Fix shortcuts from global menubar not working when keyboard grabbed on macOS --- kitty/keys.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kitty/keys.py b/kitty/keys.py index 65707f7c3..7b8a1786d 100644 --- a/kitty/keys.py +++ b/kitty/keys.py @@ -17,6 +17,7 @@ SingleKey, get_boss, get_options, + grab_keyboard, is_modifier_key, ring_bell, set_ignore_os_keyboard_processing, @@ -157,11 +158,14 @@ def dispatch_possible_special_key(self, ev: KeyEvent) -> bool: is_root_mode = not self.keyboard_mode_stack mode = self.keyboard_modes[''] if is_root_mode else self.keyboard_mode_stack[-1] key_action = get_shortcut(mode.keymap, ev) + if key_action is None and self.global_shortcuts_map and (global_key_action := get_shortcut(self.global_shortcuts_map, ev)) is not None: + if grab_keyboard(None): + key_action = global_key_action + else: + return True if key_action is None: if is_modifier_key(ev.key): return False - if self.global_shortcuts_map and get_shortcut(self.global_shortcuts_map, ev): - return True if not is_root_mode: if mode.sequence_keys is not None: self.pop_keyboard_mode()