diff options
-rw-r--r-- | src/cairo-xcb-surface-render.c | 7 |
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, |