[gtk+/gtk-3-6] gtk: don't let insensitive children eat scroll events when bubbling down



commit 07d04fb0f8403d94636dcba5e002480ce1b4e461
Author: Michael Natterer <mitch lanedo com>
Date:   Thu Nov 22 13:37:58 2012 +0100

    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.
    (cherry picked from commit 2d9454363f961a5d1942db6146917e385a5123ff)

 gtk/gtkmain.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 80dd3e4..dd141bd 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -2438,7 +2438,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);
     }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]