diff options
author | Benjamin Otte <otte@redhat.com> | 2010-12-27 18:03:38 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2010-12-27 18:46:41 +0100 |
commit | 0c285341a959ddbaad4ecc75e5f1a1ad66c5274e (patch) | |
tree | d45d750b9d721d21f614d8361a82bb745bf9dd87 /gdk | |
parent | 586283ecbbfc0c5fb3354c07e978c680fe89f129 (diff) | |
download | gtk+-0c285341a959ddbaad4ecc75e5f1a1ad66c5274e.tar.gz |
API: gdk: gdk_display_get_device_state() => gdk_device_get_position()
The API was not display-specific, but belonged to the device. Also, we
didn't find a user of the modifier mask, so we dropped it.
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/gdk.symbols | 2 | ||||
-rw-r--r-- | gdk/gdkdevice.c | 37 | ||||
-rw-r--r-- | gdk/gdkdevice.h | 4 | ||||
-rw-r--r-- | gdk/gdkdisplay.c | 63 | ||||
-rw-r--r-- | gdk/gdkdisplay.h | 6 |
5 files changed, 61 insertions, 51 deletions
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols index 7da506bee9..7545fe2067 100644 --- a/gdk/gdk.symbols +++ b/gdk/gdk.symbols @@ -59,6 +59,7 @@ gdk_device_get_mode gdk_device_get_name gdk_device_get_n_axes gdk_device_get_n_keys +gdk_device_get_position gdk_device_get_source gdk_device_get_state gdk_device_get_type G_GNUC_CONST @@ -89,7 +90,6 @@ gdk_display_get_default_cursor_size gdk_display_get_default_group gdk_display_get_default_screen gdk_display_get_device_manager -gdk_display_get_device_state gdk_display_get_event gdk_display_get_maximal_cursor_size gdk_display_get_name diff --git a/gdk/gdkdevice.c b/gdk/gdkdevice.c index 714c8cd123..39af300213 100644 --- a/gdk/gdkdevice.c +++ b/gdk/gdkdevice.c @@ -399,6 +399,43 @@ gdk_device_get_state (GdkDevice *device, } /** + * gdk_device_get_position: + * @device: pointer device to query status about. + * @screen: (out) (transfer none) (allow-none): location to store the #GdkScreen + * the @device is on, or %NULL. + * @x: (out) (allow-none): location to store root window X coordinate of @device, or %NULL. + * @y: (out) (allow-none): location to store root window Y coordinate of @device, or %NULL. + * + * Gets the current location of @device. + * + * Since: 3.0 + **/ +void +gdk_device_get_position (GdkDevice *device, + GdkScreen **screen, + gint *x, + gint *y) +{ + GdkScreen *tmp_screen; + GdkDisplay *display; + gint tmp_x, tmp_y; + GdkModifierType tmp_mask; + + g_return_if_fail (GDK_IS_DEVICE (device)); + g_return_if_fail (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD); + + display = gdk_device_get_display (device); + display->device_hooks->get_device_state (display, device, &tmp_screen, &tmp_x, &tmp_y, &tmp_mask); + + if (screen) + *screen = tmp_screen; + if (x) + *x = tmp_x; + if (y) + *y = tmp_y; +} + +/** * gdk_device_get_history: * @device: a #GdkDevice * @window: the window with respect to which which the event coordinates will be reported diff --git a/gdk/gdkdevice.h b/gdk/gdkdevice.h index ef142eb28a..ecce89a338 100644 --- a/gdk/gdkdevice.h +++ b/gdk/gdkdevice.h @@ -189,6 +189,10 @@ void gdk_device_get_state (GdkDevice *device, GdkWindow *window, gdouble *axes, GdkModifierType *mask); +void gdk_device_get_position (GdkDevice *device, + GdkScreen **screen, + gint *x, + gint *y); gboolean gdk_device_get_history (GdkDevice *device, GdkWindow *window, guint32 start, diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index a3dd068674..e7f7fc57e8 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -697,48 +697,6 @@ _gdk_display_enable_motion_hints (GdkDisplay *display, } /** - * gdk_display_get_device_state: - * @display: a #GdkDisplay. - * @device: pointer device to query status about. - * @screen: (out) (transfer none) (allow-none): location to store the #GdkScreen - * the @device is on, or %NULL. - * @x: (out) (allow-none): location to store root window X coordinate of @device, or %NULL. - * @y: (out) (allow-none): location to store root window Y coordinate of @device, or %NULL. - * @mask: (out) (allow-none): location to store current modifier mask for @device, or %NULL. - * - * Gets the current location and state of @device for a given display. - * - * Since: 3.0 - **/ -void -gdk_display_get_device_state (GdkDisplay *display, - GdkDevice *device, - GdkScreen **screen, - gint *x, - gint *y, - GdkModifierType *mask) -{ - GdkScreen *tmp_screen; - gint tmp_x, tmp_y; - GdkModifierType tmp_mask; - - g_return_if_fail (GDK_IS_DISPLAY (display)); - g_return_if_fail (GDK_IS_DEVICE (device)); - g_return_if_fail (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD); - - display->device_hooks->get_device_state (display, device, &tmp_screen, &tmp_x, &tmp_y, &tmp_mask); - - if (screen) - *screen = tmp_screen; - if (x) - *x = tmp_x; - if (y) - *y = tmp_y; - if (mask) - *mask = tmp_mask; -} - -/** * gdk_display_get_window_at_device_position: * @display: a #GdkDisplay. * @device: pointer #GdkDevice to query info to. @@ -822,7 +780,7 @@ gdk_display_set_device_hooks (GdkDisplay *display, * * Since: 2.2 * - * Deprecated: 3.0: Use gdk_display_get_device_state() instead. + * Deprecated: 3.0: Use gdk_device_get_position() instead. **/ void gdk_display_get_pointer (GdkDisplay *display, @@ -831,9 +789,26 @@ gdk_display_get_pointer (GdkDisplay *display, gint *y, GdkModifierType *mask) { + GdkScreen *tmp_screen; + gint tmp_x, tmp_y; + GdkModifierType tmp_mask; + g_return_if_fail (GDK_IS_DISPLAY (display)); - gdk_display_get_device_state (display, display->core_pointer, screen, x, y, mask); + /* We call get_device_state here manually instead of gdk_device_get_position() + * because we also care about the modifier mask */ + + display->device_hooks->get_device_state (display, + display->core_pointer, + &tmp_screen, &tmp_x, &tmp_y, &tmp_mask); + if (screen) + *screen = tmp_screen; + if (x) + *x = tmp_x; + if (y) + *y = tmp_y; + if (mask) + *mask = tmp_mask; } static GdkWindow * diff --git a/gdk/gdkdisplay.h b/gdk/gdkdisplay.h index bda19c2b77..100b9c37e1 100644 --- a/gdk/gdkdisplay.h +++ b/gdk/gdkdisplay.h @@ -191,12 +191,6 @@ GdkDisplayPointerHooks *gdk_display_set_pointer_hooks (GdkDisplay #endif /* GDK_DISABLE_DEPRECATED */ #endif /* GDK_MULTIDEVICE_SAFE */ -void gdk_display_get_device_state (GdkDisplay *display, - GdkDevice *device, - GdkScreen **screen, - gint *x, - gint *y, - GdkModifierType *mask); GdkWindow * gdk_display_get_window_at_device_position (GdkDisplay *display, GdkDevice *device, gint *win_x, |