summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-surface.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-02-02 01:46:56 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-02-02 01:46:56 +0000
commit24445f94684a10eeaebb3794dc7c4b20539d873b (patch)
tree94209633d6cc5fa6bad062038b9fed106bddd638 /src/cairo-xlib-surface.c
parentb454db4b138872121ac003d4ba953f44e1a1dc60 (diff)
downloadcairo-24445f94684a10eeaebb3794dc7c4b20539d873b.tar.gz
xlib: Set IncludeInferiors when acquiring the source image
If we need to fallback and perform a copy first to a pixmap for a partially unviewable Window, we need to copy its inferiors as well. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-xlib-surface.c')
-rw-r--r--src/cairo-xlib-surface.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 573bed159..3e0bed7aa 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -758,11 +758,19 @@ _get_image_surface (cairo_xlib_surface_t *surface,
extents->width, extents->height,
surface->depth);
if (pixmap) {
+ XGCValues gcv;
+
+ gcv.subwindow_mode = IncludeInferiors;
+ XChangeGC (display->display, gc, GCSubwindowMode, &gcv);
+
XCopyArea (display->display, surface->drawable, pixmap, gc,
extents->x, extents->y,
extents->width, extents->height,
0, 0);
+ gcv.subwindow_mode = ClipByChildren;
+ XChangeGC (display->display, gc, GCSubwindowMode, &gcv);
+
ximage = XGetImage (display->display,
pixmap,
0, 0,