[gtk/gtk-3-24: 1/2] win32: Don't multiply the scroll event deltas by the Windows scroll lines setting. See #1408
- From: Christoph Reiter <creiter src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gtk-3-24: 1/2] win32: Don't multiply the scroll event deltas by the Windows scroll lines setting. See #1408
- Date: Sat, 24 Nov 2018 09:33:54 +0000 (UTC)
commit 83204dd882db2d74395f9a17207c9c4070f254cd
Author: Christoph Reiter <reiter christoph gmail com>
Date: Wed Nov 21 20:34:29 2018 +0100
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.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]