[gtk+/touch-for-3.4: 15/65] gtk: Handle motion hints for ::captured-event



commit 1385eff1973d97f48001bedf677d50ed6c4ac3bb
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Nov 26 20:20:03 2011 +0100

    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 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 280060e..14cd137 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -5928,6 +5928,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;



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