diff options
author | panoplie <59100-panoplie@users.noreply.gitlab.gnome.org> | 2022-02-28 21:45:06 +0100 |
---|---|---|
committer | panoplie <59100-panoplie@users.noreply.gitlab.gnome.org> | 2022-03-19 00:41:26 +0100 |
commit | f9e2c106bc24865fae7f5b6c73f0a533bc298b88 (patch) | |
tree | 6647f642c1393a6b9df1ab3b1716bd0d5b945ccb | |
parent | 53956e5389e7ea2a48f5133f27ac2a42b4de82aa (diff) | |
download | gtk+-f9e2c106bc24865fae7f5b6c73f0a533bc298b88.tar.gz |
gtkrange: Add scroll unit handling
-rw-r--r-- | gtk/gtkrange.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index c3c270e6c3..f185ab6763 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -2202,25 +2202,27 @@ gtk_range_scroll_controller_scroll (GtkEventControllerScroll *scroll, GtkRange *range) { GtkRangePrivate *priv = gtk_range_get_instance_private (range); - double scroll_unit, delta; + double delta; gboolean handled; GtkOrientation move_orientation; - -#ifdef GDK_WINDOWING_MACOS - scroll_unit = 1; -#else - scroll_unit = gtk_adjustment_get_page_increment (priv->adjustment); -#endif + GdkScrollUnit scroll_unit; if (priv->orientation == GTK_ORIENTATION_HORIZONTAL && dx != 0) { move_orientation = GTK_ORIENTATION_HORIZONTAL; - delta = dx * scroll_unit; + delta = dx; } else { move_orientation = GTK_ORIENTATION_VERTICAL; - delta = dy * scroll_unit; + delta = dy; + } + + scroll_unit = gtk_event_controller_scroll_get_unit (scroll); + + if (scroll_unit == GDK_SCROLL_UNIT_WHEEL) + { + delta *= gtk_adjustment_get_page_increment (priv->adjustment); } if (delta != 0 && should_invert_move (range, move_orientation)) |