[gtk+/xi2] GdkDeviceManagerXI2: respect GDK_MODE_WINDOW.



commit 283c7d5d0d384da472181e830bbfa6576408995a
Author: Carlos Garnacho <carlos gnome org>
Date:   Fri Oct 2 18:22:17 2009 +0200

    GdkDeviceManagerXI2: respect GDK_MODE_WINDOW.

 gdk/x11/gdkdevicemanager-xi2.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index ef2ce08..0945fcc 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -959,6 +959,15 @@ gdk_device_manager_xi2_translate_event (GdkEventTranslator *translator,
                                                  event->button.window,
                                                  &xev->valuators);
 
+            if (event->button.device->mode == GDK_MODE_WINDOW)
+              {
+                GdkDevice *device = event->button.device;
+
+                /* Update event coordinates from axes */
+                gdk_device_get_axis (device, event->button.axes, GDK_AXIS_X, &event->button.x);
+                gdk_device_get_axis (device, event->button.axes, GDK_AXIS_Y, &event->button.y);
+              }
+
             event->button.state = gdk_device_xi2_translate_state (&xev->mods, &xev->buttons);
             event->button.button = xev->detail;
           }
@@ -1000,6 +1009,15 @@ gdk_device_manager_xi2_translate_event (GdkEventTranslator *translator,
                                              event->motion.y,
                                              event->motion.window,
                                              &xev->valuators);
+
+        if (event->motion.device->mode == GDK_MODE_WINDOW)
+          {
+            GdkDevice *device = event->motion.device;
+
+            /* Update event coordinates from axes */
+            gdk_device_get_axis (device, event->motion.axes, GDK_AXIS_X, &event->motion.x);
+            gdk_device_get_axis (device, event->motion.axes, GDK_AXIS_Y, &event->motion.y);
+          }
       }
       break;
     case XI_Enter:



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