From e7bfb040474d6f7b8cddd781963807c8693c4ba0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 24 Jul 2021 07:06:46 +0530 Subject: [PATCH] Fix mouse actions not working when caps lock or num lock are engaged Fixes #3859 --- docs/changelog.rst | 3 +++ kitty/keys.py | 5 ++--- kitty/window.py | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index a0c2b107d..67d10a091 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -60,6 +60,9 @@ To update |kitty|, :doc:`follow the instructions `. - Allow leading or trailing spaces in :opt:`tab_activity_symbol` +- Fix mouse actions not working when caps lock or num lock are engaged + (:iss:`3859`) + - macOS: Fix automatic detection of bold/italic faces for fonts that use the family name as the full face name of the regular font not working (:iss:`3861`) diff --git a/kitty/keys.py b/kitty/keys.py index f0adc05cc..0493e8946 100644 --- a/kitty/keys.py +++ b/kitty/keys.py @@ -6,15 +6,14 @@ from typing import Optional, Union from .conf.utils import KeyAction from .fast_data_types import ( - GLFW_MOD_ALT, GLFW_MOD_CAPS_LOCK, GLFW_MOD_CONTROL, GLFW_MOD_HYPER, - GLFW_MOD_META, GLFW_MOD_NUM_LOCK, GLFW_MOD_SHIFT, GLFW_MOD_SUPER, KeyEvent + GLFW_MOD_ALT, GLFW_MOD_CONTROL, GLFW_MOD_HYPER, GLFW_MOD_META, + GLFW_MOD_SHIFT, GLFW_MOD_SUPER, KeyEvent ) from .options.utils import KeyMap, SequenceMap, SubSequenceMap from .types import SingleKey from .typing import ScreenType mod_mask = GLFW_MOD_ALT | GLFW_MOD_CONTROL | GLFW_MOD_SHIFT | GLFW_MOD_SUPER | GLFW_MOD_META | GLFW_MOD_HYPER -lock_mask = GLFW_MOD_NUM_LOCK | GLFW_MOD_CAPS_LOCK def keyboard_mode_name(screen: ScreenType) -> str: diff --git a/kitty/window.py b/kitty/window.py index ac252f22f..3b7e83f2c 100644 --- a/kitty/window.py +++ b/kitty/window.py @@ -33,7 +33,7 @@ from .fast_data_types import ( set_titlebar_color, set_window_padding, set_window_render_data, update_window_title, update_window_visibility, viewport_for_window ) -from .keys import keyboard_mode_name +from .keys import keyboard_mode_name, mod_mask from .notify import NotificationCommand, handle_notification_cmd from .options.types import Options from .rgb import to_color @@ -570,6 +570,7 @@ class Window: get_boss().child_monitor.set_iutf8_winid(self.id, on) def on_mouse_event(self, event: Dict[str, Any]) -> bool: + event['mods'] = event.get('mods', 0) & mod_mask ev = MouseEvent(**event) self.current_mouse_event_button = ev.button action = get_options().mousemap.get(ev)