b9d263948c2e0c3881ed3721a72a56a4dc8a11b2
[mono.git] / bockbuild / mac-sdk / patches / gtk / 0010-gtk-don-t-let-insensitive-children-eat-scroll-events.patch
1 From c0447e2741b3f9c966e337e6c7baf34cb66b0591 Mon Sep 17 00:00:00 2001
2 From: Michael Natterer <mitch@lanedo.com>
3 Date: Thu, 22 Nov 2012 13:37:58 +0100
4 Subject: [PATCH 10/68] gtk: don't let insensitive children eat scroll events
5  when bubbling down
6
7 When event capturing is enabled, stop propagating scroll events
8 at insensitive widgets, but don't handle them (don't return TRUE),
9 so they can bubble up again and reach their handling widgets.
10 ---
11  gtk/gtkmain.c |   10 +++++++++-
12  1 file changed, 9 insertions(+), 1 deletion(-)
13
14 diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
15 index 21345ed..5ca0993 100644
16 --- a/gtk/gtkmain.c
17 +++ b/gtk/gtkmain.c
18 @@ -2482,7 +2482,15 @@ propagate_event_down (GtkWidget *widget,
19        widget = (GtkWidget *)l->data;
20
21        if (!gtk_widget_is_sensitive (widget))
22 -        handled_event = TRUE;
23 +        {
24 +          /* stop propagating on SCROLL, but don't handle the event, so it
25 +           * can propagate up again and reach its handling widget
26 +           */
27 +          if (event->type == GDK_SCROLL)
28 +            break;
29 +          else
30 +            handled_event = TRUE;
31 +        }
32        else
33          handled_event = _gtk_widget_captured_event (widget, event);
34      }
35 --
36 1.7.10.2 (Apple Git-33)