[gtk+/xi2] Make gdk_event_set_device() also set non-private device.



commit 9a843eead76db332e77c8c848a4d908e2da37522
Author: Carlos Garnacho <carlos gnome org>
Date:   Thu Jan 21 01:45:02 2010 +0100

    Make gdk_event_set_device() also set non-private device.
    
    For GdkEvents with a public GdkDevice field, it's now also
    set through this function.

 gdk/gdkevents.c |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index 7d8684b..61d5059 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -935,12 +935,34 @@ gdk_event_set_device (GdkEvent  *event,
                       GdkDevice *device)
 {
   GdkEventPrivate *private;
-  
+
   g_return_if_fail (gdk_event_is_allocated (event));
 
   private = (GdkEventPrivate *) event;
-  
+
   private->device = device;
+
+  switch (event->type)
+    {
+    case GDK_MOTION_NOTIFY:
+      event->motion.device = device;
+      break;
+    case GDK_BUTTON_PRESS:
+    case GDK_2BUTTON_PRESS:
+    case GDK_3BUTTON_PRESS:
+    case GDK_BUTTON_RELEASE:
+      event->button.device = device;
+      break;
+    case GDK_SCROLL:
+      event->scroll.device = device;
+      break;
+    case GDK_PROXIMITY_IN:
+    case GDK_PROXIMITY_OUT:
+      event->proximity.device = device;
+      break;
+    default:
+      break;
+    }
 }
 
 /**



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