summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-06-30 09:30:53 +0200
committerAlexander Larsson <alexl@redhat.com>2009-06-30 09:30:53 +0200
commit3b6cf72f395b40c61a8eaddb6e56ff6869ef14cf (patch)
tree438bed4c6d77306e2bd1be8891ec7ca17bfaf637
parent64e7c7828d951953708248b21b1541058067c702 (diff)
downloadgtk+-3b6cf72f395b40c61a8eaddb6e56ff6869ef14cf.tar.gz
Move destroyed check to common code for get_origin & get_root_coords
Also remove weird return value from get_root_coords
-rw-r--r--gdk/gdkwindow.c22
-rw-r--r--gdk/gdkwindow.h2
-rw-r--r--gdk/x11/gdkwindow-x11.c19
3 files changed, 27 insertions, 16 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 56b8974a02..f635a0722c 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -6990,6 +6990,15 @@ gdk_window_get_origin (GdkWindow *window,
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
+ if (GDK_WINDOW_DESTROYED (window))
+ {
+ if (x)
+ *x = 0;
+ if (y)
+ *y = 0;
+ return 0;
+ }
+
private = (GdkWindowObject *) window;
GDK_WINDOW_IMPL_GET_IFACE (private->impl)->get_root_coords (window,
@@ -7012,10 +7021,8 @@ gdk_window_get_origin (GdkWindow *window,
* window coordinates. This is similar to
* gdk_window_get_origin() but allows you go pass
* in any position in the window, not just the origin.
- *
- * Return value: not meaningful, ignore
*/
-gint
+void
gdk_window_get_root_coords (GdkWindow *window,
gint x,
gint y,
@@ -7028,6 +7035,15 @@ gdk_window_get_root_coords (GdkWindow *window,
private = (GdkWindowObject *) window;
+ if (GDK_WINDOW_DESTROYED (window))
+ {
+ if (x)
+ *root_x = x;
+ if (y)
+ *root_y = y;
+ return;
+ }
+
GDK_WINDOW_IMPL_GET_IFACE (private->impl)->get_root_coords (window,
x + private->abs_x,
y + private->abs_y,
diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h
index 752f6b66cb..df3c911809 100644
--- a/gdk/gdkwindow.h
+++ b/gdk/gdkwindow.h
@@ -531,7 +531,7 @@ void gdk_window_get_position (GdkWindow *window,
gint gdk_window_get_origin (GdkWindow *window,
gint *x,
gint *y);
-gint gdk_window_get_root_coords (GdkWindow *window,
+void gdk_window_get_root_coords (GdkWindow *window,
gint x,
gint y,
gint *root_x,
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 1c7c669e70..9cd453b1ee 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -2788,19 +2788,14 @@ gdk_window_x11_get_root_coords (GdkWindow *window,
{
gint return_val;
Window child;
- gint tx = 0;
- gint ty = 0;
+ gint tx;
+ gint ty;
- if (!GDK_WINDOW_DESTROYED (window))
- {
- return_val = XTranslateCoordinates (GDK_WINDOW_XDISPLAY (window),
- GDK_WINDOW_XID (window),
- GDK_WINDOW_XROOTWIN (window),
- x, y, &tx, &ty,
- &child);
- }
- else
- return_val = 0;
+ return_val = XTranslateCoordinates (GDK_WINDOW_XDISPLAY (window),
+ GDK_WINDOW_XID (window),
+ GDK_WINDOW_XROOTWIN (window),
+ x, y, &tx, &ty,
+ &child);
if (root_x)
*root_x = tx;