From 3ebd1c3fe77809a80ff1d647ba2d368b5aea0623 Mon Sep 17 00:00:00 2001 From: Ernestas Kulik Date: Wed, 18 Jul 2018 16:34:39 +0300 Subject: eventcontrollerscroll: Conditionally propagate ::scroll MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, gtk_event_controller_scroll_handle_event() always returns TRUE if it is handled, which stops the propagation of the event. If there’s a single GtkEventControllerScroll in the widget hierarchy, that means that no others will run, depending on the propagation phase. In Nautilus, this can be observed when adding a scroll controller to the GtkScrolledWindow (ctrl-scrolling controls the zoom level) - either the scrolling or the zooming breaks. Fixes https://gitlab.gnome.org/GNOME/gtk/issues/45 --- gtk/gtktreeview.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gtk/gtktreeview.c') diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index f9ccd551c4..5205af8108 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -800,7 +800,7 @@ static void gtk_tree_view_search_pressed_cb (GtkGesture *gestu double x, double y, GtkTreeView *tree_view); -static void gtk_tree_view_search_scroll_event (GtkWidget *entry, +static gboolean gtk_tree_view_search_scroll_event (GtkWidget *entry, gdouble dx, gdouble dy, GtkTreeView *tree_view); @@ -14251,7 +14251,7 @@ gtk_tree_view_search_pressed_cb (GtkGesture *gesture, gtk_tree_view_search_window_hide (widget, tree_view, keyb_device); } -static void +static gboolean gtk_tree_view_search_scroll_event (GtkWidget *widget, gdouble dx, gdouble dy, @@ -14277,6 +14277,8 @@ gtk_tree_view_search_scroll_event (GtkWidget *widget, tree_view); g_source_set_name_by_id (tree_view->priv->typeselect_flush_timeout, "[gtk+] gtk_tree_view_search_entry_flush_timeout"); } + + return TRUE; } static gboolean -- cgit v1.2.1