summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpanoplie <59100-panoplie@users.noreply.gitlab.gnome.org>2022-02-28 21:45:06 +0100
committerpanoplie <59100-panoplie@users.noreply.gitlab.gnome.org>2022-03-19 00:41:26 +0100
commitf9e2c106bc24865fae7f5b6c73f0a533bc298b88 (patch)
tree6647f642c1393a6b9df1ab3b1716bd0d5b945ccb
parent53956e5389e7ea2a48f5133f27ac2a42b4de82aa (diff)
downloadgtk+-f9e2c106bc24865fae7f5b6c73f0a533bc298b88.tar.gz
gtkrange: Add scroll unit handling
-rw-r--r--gtk/gtkrange.c20
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))