diff options
author | Matthias Clasen <mclasen@redhat.com> | 2010-12-13 13:53:34 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2010-12-21 12:06:58 -0500 |
commit | 9635f096231eeb5627d92ce15eb921a2c5543558 (patch) | |
tree | 1d7567bab3fe43557bc26abd5d0c2bd3b79735b2 /gdk/gdkdisplay.c | |
parent | 4a74060d63e15f6de20b557cf5c4eede27813dd3 (diff) | |
download | gtk+-9635f096231eeb5627d92ce15eb921a2c5543558.tar.gz |
Move warp functions to the frontend
There were already GdkDevice vfuncs for this.
Diffstat (limited to 'gdk/gdkdisplay.c')
-rw-r--r-- | gdk/gdkdisplay.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index fb9e591e6e..88a1d7b4c7 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -26,6 +26,7 @@ #include "gdkdisplay.h" #include "gdkdisplayprivate.h" +#include "gdkdeviceprivate.h" #include "gdkevents.h" #include "gdkwindowimpl.h" #include "gdkinternals.h" @@ -2338,3 +2339,75 @@ gdk_display_get_maximal_cursor_size (GdkDisplay *display, width, height); } + +/** + * gdk_display_warp_pointer: + * @display: a #GdkDisplay + * @screen: the screen of @display to warp the pointer to + * @x: the x coordinate of the destination + * @y: the y coordinate of the destination + * + * Warps the pointer of @display to the point @x,@y on + * the screen @screen, unless the pointer is confined + * to a window by a grab, in which case it will be moved + * as far as allowed by the grab. Warping the pointer + * creates events as if the user had moved the mouse + * instantaneously to the destination. + * + * Note that the pointer should normally be under the + * control of the user. This function was added to cover + * some rare use cases like keyboard navigation support + * for the color picker in the #GtkColorSelectionDialog. + * + * Since: 2.8 + * + * Deprecated: 3.0: Use gdk_display_warp_device() instead. + */ +void +gdk_display_warp_pointer (GdkDisplay *display, + GdkScreen *screen, + gint x, + gint y) +{ + gdk_display_warp_device (display, + display->core_pointer, + screen, + x, y); +} + +/** + * gdk_display_warp_device: + * @display: a #GdkDisplay. + * @device: a #GdkDevice. + * @screen: the screen of @display to warp @device to. + * @x: the X coordinate of the destination. + * @y: the Y coordinate of the destination. + * + * Warps @device in @display to the point @x,@y on + * the screen @screen, unless the device is confined + * to a window by a grab, in which case it will be moved + * as far as allowed by the grab. Warping the pointer + * creates events as if the user had moved the mouse + * instantaneously to the destination. + * + * Note that the pointer should normally be under the + * control of the user. This function was added to cover + * some rare use cases like keyboard navigation support + * for the color picker in the #GtkColorSelectionDialog. + * + * Since: 3.0 + **/ +void +gdk_display_warp_device (GdkDisplay *display, + GdkDevice *device, + GdkScreen *screen, + gint x, + gint y) +{ + g_return_if_fail (GDK_IS_DISPLAY (display)); + g_return_if_fail (GDK_IS_DEVICE (device)); + g_return_if_fail (GDK_IS_SCREEN (screen)); + g_return_if_fail (display == gdk_device_get_display (device)); + + GDK_DEVICE_GET_CLASS (device)->warp (device, screen, x, y); +} |