diff options
author | Uli Schlachter <psychon@znc.in> | 2011-08-02 22:34:54 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2011-08-02 22:34:54 +0200 |
commit | 7b5b29cc0ffc44066589d371d872e355ce56343b (patch) | |
tree | 742e48bf7cfcf9af63b9edd92ef72a8c614add6a /src/cairo-xcb-surface-render.c | |
parent | d356deb18201dd8054cff158c95c6fd6f0f38dcd (diff) |
xcb: Handle deferred clear in _upload_image_inplace
Fixes: clip-device-offset, image-surface-source,
composite-integer-translate-source, move-to-show-surface,
source-surface-scale-paint, translate-show-surface, perhaps even more?
Signed-off-by: Uli Schlachter <psychon@znc.in>
Diffstat (limited to 'src/cairo-xcb-surface-render.c')
-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, |