From 724c6dfa9521e887682029add879c2fcdd518b14 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 2 Nov 2012 16:54:46 +0000 Subject: xlib/shm: Need IncludeInferiors when creating the source fallback Reported-by: Benjamin Otte Signed-off-by: Chris Wilson --- src/cairo-xlib-surface-shm.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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--; -- cgit v1.2.3