[gtk+/events-refactor: 705/1085] GdkDeviceCore: Implement warp().



commit b36afe82df8863f78d7388c0ec15e066db542131
Author: Carlos Garnacho <carlos lanedo com>
Date:   Wed Aug 12 19:47:26 2009 +0200

    GdkDeviceCore: Implement warp().

 gdk/x11/gdkdevice-core.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/gdk/x11/gdkdevice-core.c b/gdk/x11/gdkdevice-core.c
index 2f1317a..d82f174 100644
--- a/gdk/x11/gdkdevice-core.c
+++ b/gdk/x11/gdkdevice-core.c
@@ -29,6 +29,10 @@ static void gdk_device_core_get_state (GdkDevice       *device,
 static void gdk_device_core_set_window_cursor (GdkDevice *device,
                                                GdkWindow *window,
                                                GdkCursor *cursor);
+static void gdk_device_core_warp (GdkDevice *device,
+                                  GdkScreen *screen,
+                                  gint       x,
+                                  gint       y);
 
 
 G_DEFINE_TYPE (GdkDeviceCore, gdk_device_core, GDK_TYPE_DEVICE)
@@ -45,6 +49,7 @@ gdk_device_core_class_init (GdkDeviceCoreClass *klass)
 
   device_class->get_state = gdk_device_core_get_state;
   device_class->set_window_cursor = gdk_device_core_set_window_cursor;
+  device_class->warp = gdk_device_core_warp;
 }
 
 static void
@@ -97,3 +102,18 @@ gdk_device_core_set_window_cursor (GdkDevice *device,
                  GDK_WINDOW_XID (window),
                  xcursor);
 }
+
+static void
+gdk_device_core_warp (GdkDevice *device,
+                      GdkScreen *screen,
+                      gint       x,
+                      gint       y)
+{
+  Display *xdisplay;
+  Window dest;
+
+  xdisplay = GDK_DISPLAY_XDISPLAY (gdk_device_get_display (device));
+  dest = GDK_WINDOW_XWINDOW (gdk_screen_get_root_window (screen));
+
+  XWarpPointer (xdisplay, None, dest, 0, 0, 0, 0, x, y);
+}



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