XGetWindowAttributes can return an error value, and if it does its other

2008-04-29  Chris Wang  <chris.wang@sun.com>

        * src/core/window.c (meta_window_new): XGetWindowAttributes
          can return an error value, and if it does its other results
          are invalid! (#530485)


svn path=/trunk/; revision=3698
This commit is contained in:
Chris Wang 2008-04-29 13:33:39 +00:00 committed by Thomas James Alexander Thurman
parent eacd442787
commit 2d895ce875
2 changed files with 29 additions and 14 deletions

View File

@ -1,3 +1,9 @@
2008-04-29 Chris Wang <chris.wang@sun.com>
* src/core/window.c (meta_window_new): XGetWindowAttributes
can return an error value, and if it does its other results
are invalid! (#530485)
2008-04-29 Thomas Thurman <tthurman@gnome.org> 2008-04-29 Thomas Thurman <tthurman@gnome.org>
* src/ui/fixedtip.[ch]: documentation * src/ui/fixedtip.[ch]: documentation

View File

@ -206,10 +206,9 @@ meta_window_new (MetaDisplay *display,
meta_error_trap_push_with_return (display); meta_error_trap_push_with_return (display);
XGetWindowAttributes (display->xdisplay, if (XGetWindowAttributes (display->xdisplay,xwindow, &attrs))
xwindow, &attrs); {
if(meta_error_trap_pop_with_return (display, TRUE) != Success)
if (meta_error_trap_pop_with_return (display, TRUE) != Success)
{ {
meta_verbose ("Failed to get attributes for window 0x%lx\n", meta_verbose ("Failed to get attributes for window 0x%lx\n",
xwindow); xwindow);
@ -219,6 +218,16 @@ meta_window_new (MetaDisplay *display,
} }
window = meta_window_new_with_attrs (display, xwindow, window = meta_window_new_with_attrs (display, xwindow,
must_be_viewable, &attrs); 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_error_trap_pop (display, FALSE);