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.
This commit is contained in:
Carlos Garnacho
2011-11-26 20:20:03 +01:00
parent e349e46abd
commit d12924f241

View File

@@ -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);