diff options
author | Uli Schlachter <psychon@znc.in> | 2011-07-01 21:48:31 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2011-07-01 21:58:42 +0200 |
commit | 7e1a9f1db0471f238a954a1fd248695a2a6920d7 (patch) | |
tree | bc8f7a9e614455ae58a090f897662d5e760ddafa | |
parent | 26ee41435b864b266f6c2c06544d95f7cd125733 (diff) |
xlib-xcb: Fix cairo_surface_flush()
This function called directly into the xcb's surface flush function. This means
that snapshots for that surface weren't detached since that's normally done in
cairo_surface_flush() before calling into the backend.
Fix this by using surface_flush() instead of calling into the backend directly.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=31931
Signed-off-by: Uli Schlachter <psychon@znc.in>
-rw-r--r-- | src/cairo-xlib-xcb-surface.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cairo-xlib-xcb-surface.c b/src/cairo-xlib-xcb-surface.c index b48cb929..0462e037 100644 --- a/src/cairo-xlib-xcb-surface.c +++ b/src/cairo-xlib-xcb-surface.c @@ -196,7 +196,9 @@ static cairo_status_t _cairo_xlib_xcb_surface_flush (void *abstract_surface) { cairo_xlib_xcb_surface_t *surface = abstract_surface; - return surface->xcb->base.backend->flush (surface->xcb); + /* We have to call cairo_surface_flush() to make sure snapshots are detached */ + cairo_surface_flush (&surface->xcb->base); + return CAIRO_STATUS_SUCCESS; } static cairo_status_t |