[cairo-commit] src/cairo-xlib-surface-shm.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Nov 2 10:04:01 PDT 2012


 src/cairo-xlib-surface-shm.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

New commits:
commit 724c6dfa9521e887682029add879c2fcdd518b14
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Nov 2 16:54:46 2012 +0000

    xlib/shm: Need IncludeInferiors when creating the source fallback
    
    Reported-by: Benjamin Otte <otte at redhat.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c
index 0ca4305..b03dd83 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--;


More information about the cairo-commit mailing list