| author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-11-02 16:54:46 (GMT) |
|---|---|---|
| committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-11-02 17:01:07 (GMT) |
| commit | 724c6dfa9521e887682029add879c2fcdd518b14 (patch) (side-by-side diff) | |
| tree | b387e76f29d2405b54a32312765944b75e9c27fd | |
| parent | 1f4d05b55c96347aa4240190fda27f951b00c539 (diff) | |
| download | cairo-724c6dfa9521e887682029add879c2fcdd518b14.zip 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 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--; |
