summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2009-11-27 18:17:33 -0500
committerMatthias Clasen <mclasen@redhat.com>2009-11-30 22:37:53 -0500
commitb6138cc8c035901e8af5527a7877d111e4cdf2c0 (patch)
tree48fc61c4719be60fe335ea4585e2ced4c4075871
parent7ef6a12b583cc33d8e74821b924826194d1bab2e (diff)
downloadgdk-pixbuf-b6138cc8c035901e8af5527a7877d111e4cdf2c0.tar.gz
Short-circuit get_frame_extents for override-redirect windows
There's no reason to do our expensive round-trips for an override-redirect window; just use local information. See bug 581145. Patch by Owen Taylor.
-rw-r--r--gdk/x11/gdkwindow-x11.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index c215e8721..e0ee2b019 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -2920,6 +2920,7 @@ gdk_window_get_frame_extents (GdkWindow *window,
{
GdkDisplay *display;
GdkWindowObject *private;
+ GdkWindowImplX11 *impl;
Window xwindow;
Window xparent;
Window root;
@@ -2955,7 +2956,8 @@ gdk_window_get_frame_extents (GdkWindow *window,
rect->y = private->y;
gdk_drawable_get_size ((GdkDrawable *)private, &rect->width, &rect->height);
- if (GDK_WINDOW_DESTROYED (private))
+ impl = GDK_WINDOW_IMPL_X11 (private->impl);
+ if (GDK_WINDOW_DESTROYED (private) || impl->override_redirect)
return;
nvroots = 0;