mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-18 14:34:52 +02:00
Port visual_window_select to use a keyboard mode
This commit is contained in:
@@ -1438,7 +1438,8 @@ class Boss:
|
|||||||
w = self.select_window_in_tab_using_overlay(tab, choose_msg, only_window_ids)
|
w = self.select_window_in_tab_using_overlay(tab, choose_msg, only_window_ids)
|
||||||
self.current_visual_select.window_used_for_selection_id = 0 if w is None else w.id
|
self.current_visual_select.window_used_for_selection_id = 0 if w is None else w.id
|
||||||
return
|
return
|
||||||
pending_sequences: SubSequenceMap = {}
|
km = KeyboardMode('__visual_select__')
|
||||||
|
km.end_on_action = True
|
||||||
fmap = get_name_to_functional_number_map()
|
fmap = get_name_to_functional_number_map()
|
||||||
alphanumerics = get_options().visual_window_select_characters
|
alphanumerics = get_options().visual_window_select_characters
|
||||||
for idx, window in tab.windows.iter_windows_with_number(only_visible=True):
|
for idx, window in tab.windows.iter_windows_with_number(only_visible=True):
|
||||||
@@ -1451,11 +1452,11 @@ class Boss:
|
|||||||
window.screen.set_window_char(ch)
|
window.screen.set_window_char(ch)
|
||||||
self.current_visual_select.window_ids.append(window.id)
|
self.current_visual_select.window_ids.append(window.id)
|
||||||
for mods in (0, GLFW_MOD_CONTROL, GLFW_MOD_CONTROL | GLFW_MOD_SHIFT, GLFW_MOD_SUPER, GLFW_MOD_ALT, GLFW_MOD_SHIFT):
|
for mods in (0, GLFW_MOD_CONTROL, GLFW_MOD_CONTROL | GLFW_MOD_SHIFT, GLFW_MOD_SUPER, GLFW_MOD_ALT, GLFW_MOD_SHIFT):
|
||||||
pending_sequences[(SingleKey(mods=mods, key=ord(ch.lower())),)] = [ac]
|
km.keymap[SingleKey(mods=mods, key=ord(ch.lower()))].append(ac)
|
||||||
if ch in string.digits:
|
if ch in string.digits:
|
||||||
pending_sequences[(SingleKey(mods=mods, key=fmap[f'KP_{ch}']),)] = [ac]
|
km.keymap[SingleKey(mods=mods, key=fmap[f'KP_{ch}'])].append(ac)
|
||||||
if len(self.current_visual_select.window_ids) > 1:
|
if len(self.current_visual_select.window_ids) > 1:
|
||||||
self.set_pending_sequences(pending_sequences, default_pending_action='visual_window_select_action_trigger 0')
|
self._push_keyboard_mode(km)
|
||||||
redirect_mouse_handling(True)
|
redirect_mouse_handling(True)
|
||||||
self.mouse_handler = self.visual_window_select_mouse_handler
|
self.mouse_handler = self.visual_window_select_mouse_handler
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user