summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2011-07-01 21:48:31 +0200
committerUli Schlachter <psychon@znc.in>2011-07-01 21:58:42 +0200
commit7e1a9f1db0471f238a954a1fd248695a2a6920d7 (patch)
treebc8f7a9e614455ae58a090f897662d5e760ddafa
parent26ee41435b864b266f6c2c06544d95f7cd125733 (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.c4
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