From e08806aee6695ea9a5db91eccefb669c801ad38f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 4 Dec 2024 19:24:31 +0530 Subject: [PATCH] Fix #8099 --- kitty/window.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kitty/window.py b/kitty/window.py index 005dffd73..68b28a697 100644 --- a/kitty/window.py +++ b/kitty/window.py @@ -68,6 +68,7 @@ from .fast_data_types import ( get_mouse_data_for_window, get_options, is_css_pointer_name_valid, + is_modifier_key, last_focused_os_window_id, mark_os_window_dirty, monotonic, @@ -987,11 +988,16 @@ class Window: sk = sk.resolve_kitty_mod(km) events.append(KeyEvent(key=sk.key, mods=sk.mods, action=GLFW_REPEAT if human_key == prev else GLFW_PRESS)) prev = human_key + scroll_needed = False for ev in events + [KeyEvent(key=x.key, mods=x.mods, action=GLFW_RELEASE) for x in reversed(events)]: enc = self.encoded_key(ev) if enc: self.write_to_child(enc) + if ev.action != GLFW_RELEASE and not is_modifier_key(ev.key): + scroll_needed = True passthrough = False + if scroll_needed: + self.scroll_end() return passthrough def send_key_sequence(self, *keys: KeyEvent, synthesize_release_events: bool = True) -> None: