From 83204dd882db2d74395f9a17207c9c4070f254cd Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Wed, 21 Nov 2018 20:34:29 +0100 Subject: [PATCH] win32: Don't multiply the scroll event deltas by the Windows scroll lines setting. See #1408 GTK widgets expect the scroll deltas to be 1 or -1 and calculate a scroll value from that. Multiplying the delta by the Windows scroll line setting (which defaults to 3) results in a much larger delta and vastly different behaviour for running a GTK app on Windows vs on Linux. For example text view and tree view scroll by 9 lines per scroll wheel tick per default this way while on Linux it is around 3. Remove the multiplication for now. --- gdk/win32/gdkevents-win32.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index cfef93b44f..a2698e3cfc 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -3095,25 +3095,11 @@ gdk_event_translate (MSG *msg, if (msg->message == WM_MOUSEWHEEL) { - UINT lines_multiplier = 3; event->scroll.delta_y = (gdouble) GET_WHEEL_DELTA_WPARAM (msg->wParam) / (gdouble) WHEEL_DELTA; - /* -1 means that we should scroll in screens, not lines. - * Right now GDK doesn't support that. - */ - if (SystemParametersInfo (SPI_GETWHEELSCROLLLINES, 0, &lines_multiplier, 0) && - lines_multiplier != (UINT) -1) - event->scroll.delta_y *= (gdouble) lines_multiplier; } else if (msg->message == WM_MOUSEHWHEEL) { - UINT chars_multiplier = 3; event->scroll.delta_x = (gdouble) GET_WHEEL_DELTA_WPARAM (msg->wParam) / (gdouble) WHEEL_DELTA; - /* There doesn't seem to be any indication that - * h-scroll has an equivalent of the "screen" mode, - * indicated by multiplier being (UINT) -1. - */ - if (SystemParametersInfo (SPI_GETWHEELSCROLLCHARS, 0, &chars_multiplier, 0)) - event->scroll.delta_x *= (gdouble) chars_multiplier; } /* Positive delta scrolls up, not down, see API documentation for WM_MOUSEWHEEL message.