summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Mikhaylenko <alexm@gnome.org>2021-09-21 13:18:27 +0500
committerAlexander Mikhaylenko <alexm@gnome.org>2021-10-14 18:24:48 +0500
commit62cf20ab7ca28c703297d81c42a7097d0d2f1fb5 (patch)
tree5dcf0702897f5aa8501a82627adac4baedac21fd
parent77f4c262c75df027ca8a08cb81a97acaeea5c2a0 (diff)
downloadgtk+-62cf20ab7ca28c703297d81c42a7097d0d2f1fb5.tar.gz
-rw-r--r--gtk/gtkrange.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index c3c270e6c3..226c231bb7 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -32,7 +32,7 @@
#include "gtkcolorscaleprivate.h"
#include "gtkenums.h"
#include "gtkeventcontrollerkey.h"
-#include "gtkeventcontrollerscroll.h"
+#include "gtkeventcontrollerwheel.h"
#include "gtkgesturedrag.h"
#include "gtkgesturelongpressprivate.h"
#include "gtkgestureclick.h"
@@ -237,10 +237,10 @@ static void gtk_range_allocate_trough (GtkGizmo *gi
static void gtk_range_render_trough (GtkGizmo *gizmo,
GtkSnapshot *snapshot);
-static gboolean gtk_range_scroll_controller_scroll (GtkEventControllerScroll *scroll,
- double dx,
- double dy,
- GtkRange *range);
+static gboolean gtk_range_scroll_controller_scroll (GtkEventControllerWheel *controller,
+ double dx,
+ double dy,
+ GtkRange *range);
static void gtk_range_set_orientation (GtkRange *range,
GtkOrientation orientation);
@@ -583,7 +583,7 @@ gtk_range_init (GtkRange *range)
gtk_widget_add_controller (GTK_WIDGET (range), GTK_EVENT_CONTROLLER (gesture));
gtk_gesture_group (gesture, priv->drag_gesture);
- controller = gtk_event_controller_scroll_new (GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES);
+ controller = gtk_event_controller_wheel_new ();
g_signal_connect (controller, "scroll",
G_CALLBACK (gtk_range_scroll_controller_scroll), range);
gtk_widget_add_controller (GTK_WIDGET (range), controller);
@@ -2196,10 +2196,10 @@ stop_scrolling (GtkRange *range)
}
static gboolean
-gtk_range_scroll_controller_scroll (GtkEventControllerScroll *scroll,
- double dx,
- double dy,
- GtkRange *range)
+gtk_range_scroll_controller_scroll (GtkEventControllerWheel *controller,
+ double dx,
+ double dy,
+ GtkRange *range)
{
GtkRangePrivate *priv = gtk_range_get_instance_private (range);
double scroll_unit, delta;
@@ -2282,8 +2282,9 @@ gtk_range_drag_gesture_update (GtkGestureDrag *gesture,
{
GtkRangePrivate *priv = gtk_range_get_instance_private (range);
double start_x, start_y;
+ gboolean scroll = gdk_event_get_event_type (gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (gesture))) == GDK_SCROLL;
- if (priv->grab_location == priv->slider_widget)
+ if (priv->grab_location == priv->slider_widget || scroll)
{
int mouse_x, mouse_y;
@@ -2293,7 +2294,7 @@ gtk_range_drag_gesture_update (GtkGestureDrag *gesture,
priv->in_drag = TRUE;
update_autoscroll_mode (range, mouse_x, mouse_y);
- if (priv->autoscroll_mode == GTK_SCROLL_NONE)
+ if (priv->autoscroll_mode == GTK_SCROLL_NONE || scroll)
update_slider_position (range, mouse_x, mouse_y);
}
}
@@ -2306,7 +2307,8 @@ gtk_range_drag_gesture_begin (GtkGestureDrag *gesture,
{
GtkRangePrivate *priv = gtk_range_get_instance_private (range);
- if (priv->grab_location == priv->slider_widget)
+ if (priv->grab_location == priv->slider_widget ||
+ gdk_event_get_event_type (gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (gesture))) == GDK_SCROLL)
gtk_gesture_set_state (priv->drag_gesture, GTK_EVENT_SEQUENCE_CLAIMED);
}