summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2011-08-29 21:31:09 +0930
committerAdrian Johnson <ajohnson@redneon.com>2011-08-29 21:31:09 +0930
commit2927d13ab260562dc269dc249fb5275da0b82d63 (patch)
tree25d8e88917fa3b460844de7168fecae4b057609d /src
parentc317e215fb743e81b82f359022b845ddee4c97ba (diff)
pdf: use a new clipper object in recording_subsurface
Diffstat (limited to 'src')
-rw-r--r--src/cairo-pdf-surface.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
index 2febca8a..9f15aee9 100644
--- a/src/cairo-pdf-surface.c
+++ b/src/cairo-pdf-surface.c
@@ -2456,12 +2456,16 @@ _cairo_pdf_surface_emit_recording_subsurface (cairo_pdf_surface_t *surface,
{
double old_width, old_height;
cairo_paginated_mode_t old_paginated_mode;
+ cairo_surface_clipper_t old_clipper;
cairo_int_status_t status;
int alpha = 0;
old_width = surface->width;
old_height = surface->height;
old_paginated_mode = surface->paginated_mode;
+ old_clipper = surface->clipper;
+ _cairo_surface_clipper_init (&surface->clipper,
+ _cairo_pdf_surface_clipper_intersect_clip_path);
_cairo_pdf_surface_set_size_internal (surface,
extents->width,
@@ -2498,6 +2502,8 @@ _cairo_pdf_surface_emit_recording_subsurface (cairo_pdf_surface_t *surface,
status = _cairo_pdf_surface_close_content_stream (surface);
+ _cairo_surface_clipper_reset (&surface->clipper);
+ surface->clipper = old_clipper;
_cairo_pdf_surface_set_size_internal (surface,
old_width,
old_height);