From: Michael Natterer Date: Thu, 22 Nov 2012 12:37:58 +0000 (+0100) Subject: gtk: don't let insensitive children eat scroll events when bubbling down X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=2d9454363f961a5d1942db6146917e385a5123ff;p=~andy%2Fgtk 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. --- diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index f490aa2f7..6cb174ead 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -2435,7 +2435,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); }