diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-02 01:46:56 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-02 01:46:56 +0000 |
commit | 24445f94684a10eeaebb3794dc7c4b20539d873b (patch) | |
tree | 94209633d6cc5fa6bad062038b9fed106bddd638 /src/cairo-xlib-surface.c | |
parent | b454db4b138872121ac003d4ba953f44e1a1dc60 (diff) | |
download | cairo-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.c | 8 |
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, |