summaryrefslogtreecommitdiff
path: root/src/core/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/window.c')
-rw-r--r--src/core/window.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/core/window.c b/src/core/window.c
index d1c32daf..90997a83 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -206,21 +206,30 @@ meta_window_new (MetaDisplay *display,
meta_error_trap_push_with_return (display);
- XGetWindowAttributes (display->xdisplay,
- xwindow, &attrs);
-
- if (meta_error_trap_pop_with_return (display, TRUE) != Success)
- {
- meta_verbose ("Failed to get attributes for window 0x%lx\n",
- xwindow);
- meta_error_trap_pop (display, TRUE);
- meta_display_ungrab (display);
- return NULL;
- }
- window = meta_window_new_with_attrs (display, xwindow,
+ if (XGetWindowAttributes (display->xdisplay,xwindow, &attrs))
+ {
+ if(meta_error_trap_pop_with_return (display, TRUE) != Success)
+ {
+ meta_verbose ("Failed to get attributes for window 0x%lx\n",
+ xwindow);
+ meta_error_trap_pop (display, TRUE);
+ meta_display_ungrab (display);
+ return NULL;
+ }
+ window = meta_window_new_with_attrs (display, xwindow,
must_be_viewable, &attrs);
-
-
+ }
+ else
+ {
+ meta_error_trap_pop_with_return (display, TRUE);
+ meta_verbose ("Failed to get attributes for window 0x%lx\n",
+ xwindow);
+ meta_error_trap_pop (display, TRUE);
+ meta_display_ungrab (display);
+ return NULL;
+ }
+
+
meta_error_trap_pop (display, FALSE);
meta_display_ungrab (display);