summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-12-27 18:03:38 +0100
committerBenjamin Otte <otte@redhat.com>2010-12-27 18:46:41 +0100
commit0c285341a959ddbaad4ecc75e5f1a1ad66c5274e (patch)
treed45d750b9d721d21f614d8361a82bb745bf9dd87 /gdk
parent586283ecbbfc0c5fb3354c07e978c680fe89f129 (diff)
downloadgtk+-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.symbols2
-rw-r--r--gdk/gdkdevice.c37
-rw-r--r--gdk/gdkdevice.h4
-rw-r--r--gdk/gdkdisplay.c63
-rw-r--r--gdk/gdkdisplay.h6
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,