diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-11-02 16:54:46 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-11-02 17:01:07 +0000 |
commit | 724c6dfa9521e887682029add879c2fcdd518b14 (patch) | |
tree | b387e76f29d2405b54a32312765944b75e9c27fd | |
parent | 1f4d05b55c96347aa4240190fda27f951b00c539 (diff) | |
download | cairo-724c6dfa9521e887682029add879c2fcdd518b14.tar.gz |
xlib/shm: Need IncludeInferiors when creating the source fallback
Reported-by: Benjamin Otte <otte@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/cairo-xlib-surface-shm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c index 0ca4305c9..b03dd83d3 100644 --- a/src/cairo-xlib-surface-shm.c +++ b/src/cairo-xlib-surface-shm.c @@ -820,6 +820,13 @@ _cairo_xlib_surface_update_shm (cairo_xlib_surface_t *surface) if (_cairo_xlib_surface_get_gc (display, surface, &gc)) goto cleanup_display; + if (! surface->owns_pixmap) { + XGCValues gcv; + + gcv.subwindow_mode = IncludeInferiors; + XChangeGC (display->display, gc, GCSubwindowMode, &gcv); + } + if (damage->region) { XRectangle stack_rects[CAIRO_STACK_ARRAY_LENGTH (sizeof (XRectangle))]; XRectangle *rects = stack_rects; @@ -870,6 +877,13 @@ _cairo_xlib_surface_update_shm (cairo_xlib_surface_t *surface) 0, 0); } + if (! surface->owns_pixmap) { + XGCValues gcv; + + gcv.subwindow_mode = ClipByChildren; + XChangeGC (display->display, gc, GCSubwindowMode, &gcv); + } + XSync (display->display, False); shm->active = 0; shm->idle--; |