Commit 3b6cf72f authored by Alexander Larsson's avatar Alexander Larsson
Browse files

Move destroyed check to common code for get_origin & get_root_coords

Also remove weird return value from get_root_coords
parent 64e7c782
......@@ -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,
......
......@@ -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,
......
......@@ -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;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment