summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cairo-xcb-surface-render.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
index 364e5c00..e08ca683 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -2692,11 +2692,16 @@ _upload_image_inplace (cairo_xcb_surface_t *surface,
if (! cairo_boxes_for_each_box (boxes, image_contains_box, &icb))
return CAIRO_INT_STATUS_UNSUPPORTED;
+ if (surface->deferred_clear) {
+ status = _cairo_xcb_surface_clear (surface);
+ if (unlikely (status))
+ return status;
+ }
+
status = _cairo_xcb_connection_acquire (surface->connection);
if (unlikely (status))
return status;
-
iub.surface = surface;
iub.image = image;
iub.gc = _cairo_xcb_screen_get_gc (surface->screen,