From e1694a719f1963dd9432bfb2249340b3977b5747 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 2 Mar 2015 17:01:21 +0100 Subject: [PATCH] scrolledwindow: Cancel kinetic/overshoot animation on captured scroll events This ensures the animation is cancelled if the child widget happens to GDK_EVENT_STOP scroll events. https://bugzilla.gnome.org/show_bug.cgi?id=745315 --- gtk/gtkscrolledwindow.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index c97a6f2c6d..3222c7fd23 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -1222,6 +1222,12 @@ captured_event_cb (GtkWidget *widget, priv = sw->priv; source_device = gdk_event_get_source_device (event); + if (event->type == GDK_SCROLL) + { + gtk_scrolled_window_cancel_deceleration (sw); + return GDK_EVENT_PROPAGATE; + } + if (!priv->use_indicators) return GDK_EVENT_PROPAGATE; @@ -3183,7 +3189,6 @@ gtk_scrolled_window_scroll_event (GtkWidget *widget, { gdouble vel_x, vel_y; - gtk_scrolled_window_cancel_deceleration (scrolled_window); gtk_scrolled_window_invalidate_overshoot (scrolled_window); if (priv->scroll_events_overshoot_id)