From 4d2d9d55749948a18f73e3676b66664dfe57e1d6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 31 Aug 2018 15:28:48 +0530 Subject: [PATCH] Do not change wheel event reporting when not using high resolution scroll events --- kitty/mouse.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/kitty/mouse.c b/kitty/mouse.c index ff8fab60c8f..40ee24c90fc 100644 --- a/kitty/mouse.c +++ b/kitty/mouse.c @@ -541,7 +541,8 @@ scroll_event(double UNUSED xoffset, double yoffset, int flags) { if (!w) return; int s; - if (flags & 1) { + bool is_high_resolution = flags & 1; + if (is_high_resolution) { if (yoffset * global_state.callback_os_window->pending_scroll_pixels < 0) { global_state.callback_os_window->pending_scroll_pixels = 0; // change of direction } @@ -567,7 +568,13 @@ scroll_event(double UNUSED xoffset, double yoffset, int flags) { int sz = encode_mouse_event(w, upwards ? GLFW_MOUSE_BUTTON_4 : GLFW_MOUSE_BUTTON_5, PRESS, 0); if (sz > 0) { mouse_event_buf[sz] = 0; - for (s = abs(s); s > 0; s--) { + if (is_high_resolution) { + for (s = abs(s); s > 0; s--) { + write_escape_code_to_child(screen, CSI, mouse_event_buf); + } + } else { + // Since we are sending a mouse button 4/5 event, we ignore 's' + // and simply send one event per received scroll event write_escape_code_to_child(screen, CSI, mouse_event_buf); } }