From 8f99e926c8b1a8fa7f7e0d828a96bac6dc1fe39c Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sun, 14 Aug 2011 01:21:42 +0100 Subject: paginated: unwrap subsurfaces during context creation Signed-off-by: Chris Wilson --- src/cairo-paginated-surface.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/cairo-paginated-surface.c') diff --git a/src/cairo-paginated-surface.c b/src/cairo-paginated-surface.c index 61c2815c..2a6666ad 100644 --- a/src/cairo-paginated-surface.c +++ b/src/cairo-paginated-surface.c @@ -50,6 +50,7 @@ #include "cairo-analysis-surface-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" +#include "cairo-surface-subsurface-private.h" static const cairo_surface_backend_t cairo_paginated_surface_backend; @@ -652,7 +653,12 @@ static cairo_t * _cairo_paginated_context_create (void *target) { cairo_paginated_surface_t *surface = target; - return surface->recording_surface->backend->create_context (surface); + + if (_cairo_surface_is_subsurface (&surface->base)) + surface = (cairo_paginated_surface_t *) + _cairo_surface_subsurface_get_target (&surface->base); + + return surface->recording_surface->backend->create_context (target); } static const cairo_surface_backend_t cairo_paginated_surface_backend = { -- cgit v1.2.3