mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 14:18:26 +02:00
macOS: Fix kitten @ select-window leaving the keyboard in a partially functional state
Fixes #7074
This commit is contained in:
@@ -52,6 +52,8 @@ Detailed list of changes
|
|||||||
|
|
||||||
- Fix a single key mapping not overriding a previously defined multi-key mapping
|
- Fix a single key mapping not overriding a previously defined multi-key mapping
|
||||||
|
|
||||||
|
- macOS: Fix :code:`kitten @ select-window` leaving the keyboard in a partially functional state (:iss:`7074`)
|
||||||
|
|
||||||
0.32.1 [2024-01-26]
|
0.32.1 [2024-01-26]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|||||||
@@ -295,7 +295,6 @@ class VisualSelect:
|
|||||||
set_os_window_title(self.os_window_id, '')
|
set_os_window_title(self.os_window_id, '')
|
||||||
boss = get_boss()
|
boss = get_boss()
|
||||||
redirect_mouse_handling(False)
|
redirect_mouse_handling(False)
|
||||||
boss.mappings.clear_keyboard_modes()
|
|
||||||
for wid in self.window_ids:
|
for wid in self.window_ids:
|
||||||
w = boss.window_id_map.get(wid)
|
w = boss.window_id_map.get(wid)
|
||||||
if w is not None:
|
if w is not None:
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ class Mappings:
|
|||||||
|
|
||||||
def clear_keyboard_modes(self) -> None:
|
def clear_keyboard_modes(self) -> None:
|
||||||
self.keyboard_mode_stack = []
|
self.keyboard_mode_stack = []
|
||||||
|
self.set_ignore_os_keyboard_processing(False)
|
||||||
|
|
||||||
def pop_keyboard_mode(self) -> bool:
|
def pop_keyboard_mode(self) -> bool:
|
||||||
passthrough = True
|
passthrough = True
|
||||||
|
|||||||
@@ -527,6 +527,7 @@ class TestKeys(BaseTest):
|
|||||||
bad_lines = []
|
bad_lines = []
|
||||||
self.options = load_config(overrides=lines, accumulate_bad_lines=bad_lines)
|
self.options = load_config(overrides=lines, accumulate_bad_lines=bad_lines)
|
||||||
af(bad_lines)
|
af(bad_lines)
|
||||||
|
self.ignore_os_keyboard_processing = False
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def get_active_window(self):
|
def get_active_window(self):
|
||||||
@@ -555,7 +556,7 @@ class TestKeys(BaseTest):
|
|||||||
return bool(action_definition)
|
return bool(action_definition)
|
||||||
|
|
||||||
def set_ignore_os_keyboard_processing(self, on: bool) -> None:
|
def set_ignore_os_keyboard_processing(self, on: bool) -> None:
|
||||||
pass
|
self.ignore_os_keyboard_processing = on
|
||||||
|
|
||||||
def set_cocoa_global_shortcuts(self, opts):
|
def set_cocoa_global_shortcuts(self, opts):
|
||||||
return {}
|
return {}
|
||||||
@@ -640,3 +641,9 @@ class TestKeys(BaseTest):
|
|||||||
self.ae(tm.actions, ['neighboring_window left'])
|
self.ae(tm.actions, ['neighboring_window left'])
|
||||||
self.ae(tm('x'), [True])
|
self.ae(tm('x'), [True])
|
||||||
af(tm.keyboard_mode_stack)
|
af(tm.keyboard_mode_stack)
|
||||||
|
|
||||||
|
# modal mapping with --on-action=end must restore OS keyboard processing
|
||||||
|
tm = TM('map --new-mode mw --on-action end m', 'map --mode mw a new_window')
|
||||||
|
self.ae(tm('m', 'a'), [True, True])
|
||||||
|
self.ae(tm.actions, ['push_keyboard_mode mw', 'new_window'])
|
||||||
|
af(tm.ignore_os_keyboard_processing)
|
||||||
|
|||||||
Reference in New Issue
Block a user