diff options
Diffstat (limited to 'src/extension/internal/cairo-render-context.cpp')
| -rw-r--r-- | src/extension/internal/cairo-render-context.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 972081c0d..4869472da 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -878,11 +878,11 @@ CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface, cairo_matrix_t } bool -CairoRenderContext::finish(void) +CairoRenderContext::finish(bool finish_surface) { g_assert( _is_valid ); - if (_vector_based_target) + if (_vector_based_target && finish_surface) cairo_show_page(_cr); // PDF+TeX Output, see CairoRenderContext::_prepareRenderGraphic() @@ -893,10 +893,12 @@ CairoRenderContext::finish(void) } cairo_destroy(_cr); - cairo_surface_finish(_surface); + _cr = NULL; + + if (finish_surface) + cairo_surface_finish(_surface); cairo_status_t status = cairo_surface_status(_surface); cairo_surface_destroy(_surface); - _cr = NULL; _surface = NULL; if (_layout) |
