From 85fe783652bf916da098bec4263b17de0a198fe0 Mon Sep 17 00:00:00 2001 From: Luflosi Date: Thu, 4 Jun 2020 23:57:01 +0200 Subject: [PATCH] Fix fake scroll when scrolling in unfocused kitty window Scrolling should happen in the kitty window under the mouse cursor, not in the currently active kitty window. --- kitty/data-types.h | 1 - kitty/keys.c | 3 +-- kitty/mouse.c | 2 +- kitty/state.h | 1 + 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/kitty/data-types.h b/kitty/data-types.h index b75dac81b..ce4ce1161 100644 --- a/kitty/data-types.h +++ b/kitty/data-types.h @@ -303,7 +303,6 @@ void enter_event(void); void mouse_event(int, int, int); void focus_in_event(void); void scroll_event(double, double, int, int); -void fake_scroll(int, bool); void set_special_key_combo(int glfw_key, int mods, bool is_native); void on_key_input(GLFWkeyevent *ev); void request_window_attention(id_type, bool); diff --git a/kitty/keys.c b/kitty/keys.c index a4a495c43..4bccc3ab5 100644 --- a/kitty/keys.c +++ b/kitty/keys.c @@ -203,8 +203,7 @@ on_key_input(GLFWkeyevent *ev) { } void -fake_scroll(int amount, bool upwards) { - Window *w = active_window(); +fake_scroll(Window *w, int amount, bool upwards) { if (!w) return; int key = upwards ? GLFW_KEY_UP : GLFW_KEY_DOWN; while (amount-- > 0) { diff --git a/kitty/mouse.c b/kitty/mouse.c index 7453eed95..099dbcb76 100644 --- a/kitty/mouse.c +++ b/kitty/mouse.c @@ -698,7 +698,7 @@ scroll_event(double UNUSED xoffset, double yoffset, int flags, int modifiers) { } } } else { - fake_scroll(abs(s), upwards); + fake_scroll(w, abs(s), upwards); } } } diff --git a/kitty/state.h b/kitty/state.h index 7a6107feb..93f54e44f 100644 --- a/kitty/state.h +++ b/kitty/state.h @@ -277,3 +277,4 @@ void stop_main_loop(void); void os_window_update_size_increments(OSWindow *window); void set_os_window_title_from_window(Window *w, OSWindow *os_window); void update_os_window_title(OSWindow *os_window); +void fake_scroll(Window *w, int amount, bool upwards);