From d12924f241f91d47ac7ca6fa21958169961b75ab Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sat, 26 Nov 2011 20:20:03 +0100 Subject: [PATCH] gtk: Handle motion hints for ::captured-event Request automatically more motion events in behalf of the original widget if it listens to motion hints. So the capturing widget doesn't need to handle such implementation details. --- gtk/gtkwidget.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 432c7b5b1f..15f2f612d9 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -6051,6 +6051,17 @@ _gtk_widget_captured_event (GtkWidget *widget, "GTK_CAPTURED_EVENT_STORE."); } + /* The widget that was originally to receive the event + * handles motion hints, but the capturing widget might + * not, so ensure we get further motion events. + */ + if ((flags & GTK_CAPTURED_EVENT_HANDLED) != 0 && + event->type == GDK_MOTION_NOTIFY && + event->motion.is_hint && + (gdk_window_get_events (event->any.window) & + GDK_POINTER_MOTION_HINT_MASK) != 0) + gdk_event_request_motions (&event->motion); + return_val = (flags & GTK_CAPTURED_EVENT_HANDLED) != 0 || !WIDGET_REALIZED_FOR_EVENT (widget, event);