diff options
author | Alexander Larsson <alexl@redhat.com> | 2009-06-30 09:30:53 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2009-06-30 09:30:53 +0200 |
commit | 3b6cf72f395b40c61a8eaddb6e56ff6869ef14cf (patch) | |
tree | 438bed4c6d77306e2bd1be8891ec7ca17bfaf637 | |
parent | 64e7c7828d951953708248b21b1541058067c702 (diff) | |
download | gdk-pixbuf-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.c | 22 | ||||
-rw-r--r-- | gdk/gdkwindow.h | 2 | ||||
-rw-r--r-- | gdk/x11/gdkwindow-x11.c | 19 |
3 files changed, 27 insertions, 16 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 56b8974a0..f635a0722 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 752f6b66c..df3c91180 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 1c7c669e7..9cd453b1e 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; |