[metacity] compositor: don't use invalid back_pixmap
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] compositor: don't use invalid back_pixmap
- Date: Wed, 18 Feb 2015 17:34:36 +0000 (UTC)
commit 8beaea6a4c4ec811025530c5ef983baf4a31fc7f
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Wed Feb 18 16:01:26 2015 +0200
compositor: don't use invalid back_pixmap
XCompositeNameWindowPixmap can generate BadMatch error. If this
error is generated then returned pixmap is not valid. Just set
back_pixmap to None in case of error.
src/compositor/compositor-xrender.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c
index 213e4f8..054c802 100644
--- a/src/compositor/compositor-xrender.c
+++ b/src/compositor/compositor-xrender.c
@@ -1141,6 +1141,7 @@ get_window_picture (MetaCompWindow *cw)
XRenderPictureAttributes pa;
XRenderPictFormat *format;
Drawable draw;
+ int error_code;
draw = cw->id;
@@ -1149,6 +1150,10 @@ get_window_picture (MetaCompWindow *cw)
if (cw->back_pixmap == None)
cw->back_pixmap = XCompositeNameWindowPixmap (xdisplay, cw->id);
+ error_code = meta_error_trap_pop_with_return (display, FALSE);
+ if (error_code != 0)
+ cw->back_pixmap = None;
+
if (cw->back_pixmap != None)
draw = cw->back_pixmap;
@@ -1159,13 +1164,13 @@ get_window_picture (MetaCompWindow *cw)
pa.subwindow_mode = IncludeInferiors;
+ meta_error_trap_push (display);
pict = XRenderCreatePicture (xdisplay, draw, format, CPSubwindowMode, &pa);
meta_error_trap_pop (display, FALSE);
return pict;
}
- meta_error_trap_pop (display, FALSE);
return None;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]