Move warp functions to the frontend

There were already GdkDevice vfuncs for this.
This commit is contained in:
Matthias Clasen 2010-12-13 13:53:34 -05:00
parent 4a74060d63
commit 9635f09623
2 changed files with 73 additions and 75 deletions

View File

@ -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);
}

View File

@ -2891,81 +2891,6 @@ gdk_window_x11_get_device_state (GdkWindow *window,
return return_val;
}
/**
* 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)
{
GdkDevice *device;
g_return_if_fail (GDK_IS_DISPLAY (display));
g_return_if_fail (GDK_IS_SCREEN (screen));
device = display->core_pointer;
GDK_DEVICE_GET_CLASS (device)->warp (device, 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);
}
GdkWindow*
_gdk_windowing_window_at_device_position (GdkDisplay *display,
GdkDevice *device,