diff options
-rw-r--r-- | src/cairo-pdf-surface.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c index ac78f589..896980a8 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -5335,6 +5335,10 @@ _cairo_pdf_surface_paint (void *abstract_surface, if (unlikely (status)) return status; + status = _cairo_pdf_operators_flush (&surface->pdf_operators); + if (unlikely (status)) + return status; + if (source->type == CAIRO_PATTERN_TYPE_SURFACE && source->extend == CAIRO_EXTEND_NONE) { @@ -5389,10 +5393,6 @@ _cairo_pdf_surface_paint (void *abstract_surface, if (unlikely (status)) return status; - status = _cairo_pdf_operators_flush (&surface->pdf_operators); - if (unlikely (status)) - return status; - _cairo_output_stream_printf (surface->output, "q /s%d gs /x%d Do Q\n", gstate_res.id, @@ -5652,6 +5652,10 @@ _cairo_pdf_surface_fill (void *abstract_surface, if (source->type == CAIRO_PATTERN_TYPE_SURFACE && source->extend == CAIRO_EXTEND_NONE) { + status = _cairo_pdf_operators_flush (&surface->pdf_operators); + if (unlikely (status)) + return status; + _cairo_output_stream_printf (surface->output, "q\n"); status = _cairo_pdf_operators_clip (&surface->pdf_operators, path, |