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 37329a9596
commit 220b4130ec

View File

@@ -5927,6 +5927,17 @@ _gtk_widget_captured_event (GtkWidget *widget,
g_signal_emit (widget, widget_signals[CAPTURED_EVENT], 0, event, &return_val);
return_val |= !WIDGET_REALIZED_FOR_EVENT (widget, event);
/* 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 (return_val &&
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);
g_object_unref (widget);
return return_val;