summaryrefslogtreecommitdiff
path: root/src/cairo-xcb-surface.c
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2011-07-29 10:27:31 +0200
committerUli Schlachter <psychon@znc.in>2011-07-29 10:29:47 +0200
commite06a3b97618ec19a26003fd02bc6054f11039ef4 (patch)
tree21386d8b4231cc0cfb484f06a4c456006d1b2ca0 /src/cairo-xcb-surface.c
parent27702768bf684ed7c91b505451414237af0f5853 (diff)
downloadcairo-e06a3b97618ec19a26003fd02bc6054f11039ef4.tar.gz
xcb: Handle fallback in map_to_image
Fixes (for xcb-fallback): map-all-to-image map-bit-to-image map-to-image-fill Signed-off-by: Uli Schlachter <psychon@znc.in>
Diffstat (limited to 'src/cairo-xcb-surface.c')
-rw-r--r--src/cairo-xcb-surface.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c
index bc23324da..072f3e39c 100644
--- a/src/cairo-xcb-surface.c
+++ b/src/cairo-xcb-surface.c
@@ -655,6 +655,9 @@ _cairo_xcb_surface_map_to_image (void *abstract_surface,
cairo_xcb_surface_t *surface = abstract_surface;
cairo_image_surface_t *image;
+ if (surface->fallback)
+ return surface->fallback->base.backend->map_to_image (surface->fallback, extents);
+
image = _get_image (surface, TRUE,
extents->x, extents->y,
extents->width, extents->height);
@@ -686,6 +689,10 @@ static cairo_int_status_t
_cairo_xcb_surface_unmap (void *abstract_surface,
cairo_image_surface_t *image)
{
+ cairo_xcb_surface_t *surface = abstract_surface;
+
+ if (surface->fallback)
+ return surface->fallback->base.backend->unmap_image (surface->fallback, image);
return _put_image (abstract_surface, image);
}