summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-surface.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-09-13 16:45:46 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-09-13 16:45:46 +0100
commit69d97d97bea86e7f4223d857803fb7f0ec0d369f (patch)
tree6c480dcab67b802b9f24bce4f8e792ddd8d2cb68 /src/cairo-xlib-surface.c
parent6ee216000ae487492fceda0fb3fecb20bb9a41f6 (diff)
downloadcairo-69d97d97bea86e7f4223d857803fb7f0ec0d369f.tar.gz
xlib: Force the fallback flush before updating the external Drawable
_cairo_surface_begin_modification() performs an internal flush, for which the xlib backend skips flushing the fallback surface as it will continue to use it for the subsequent operation. In the case where we are flushing prior to updating the Drawable, we need to perform an external flush which will trigger the posting of the damage from the fallback surface. Reported-by: Weng Xuetian <wengxt@gmail.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=54657 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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 4d1ef908a..dd9fc1172 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -2067,7 +2067,7 @@ cairo_xlib_surface_set_size (cairo_surface_t *abstract_surface,
return;
}
- status = _cairo_surface_begin_modification (abstract_surface);
+ status = _cairo_xlib_surface_flush (abstract_surface, 0);
if (unlikely (status)) {
_cairo_surface_set_error (abstract_surface, status);
return;
@@ -2128,7 +2128,7 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface,
if (surface->owns_pixmap)
return;
- status = _cairo_surface_begin_modification (abstract_surface);
+ status = _cairo_xlib_surface_flush (abstract_surface, 0);
if (unlikely (status)) {
_cairo_surface_set_error (abstract_surface, status);
return;