From c0447e2741b3f9c966e337e6c7baf34cb66b0591 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 22 Nov 2012 13:37:58 +0100 Subject: [PATCH 10/68] gtk: don't let insensitive children eat scroll events when bubbling down When event capturing is enabled, stop propagating scroll events at insensitive widgets, but don't handle them (don't return TRUE), so they can bubble up again and reach their handling widgets. --- gtk/gtkmain.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 21345ed..5ca0993 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -2482,7 +2482,15 @@ propagate_event_down (GtkWidget *widget, widget = (GtkWidget *)l->data; if (!gtk_widget_is_sensitive (widget)) - handled_event = TRUE; + { + /* stop propagating on SCROLL, but don't handle the event, so it + * can propagate up again and reach its handling widget + */ + if (event->type == GDK_SCROLL) + break; + else + handled_event = TRUE; + } else handled_event = _gtk_widget_captured_event (widget, event); } -- 1.7.10.2 (Apple Git-33)