diff options
| author | Kees Cook <kees@outflux.net> | 2007-12-10 05:29:23 +0000 |
|---|---|---|
| committer | keescook <keescook@users.sourceforge.net> | 2007-12-10 05:29:23 +0000 |
| commit | 3bbfb29347465809918421d6dafcd5c0816935e1 (patch) | |
| tree | eb280d39803051efd86b1f496bfe130afa42787f /src/extension/internal/cairo-render-context.cpp | |
| parent | always build cairo backend; add interface for setting cairo surface to renderer (diff) | |
| download | inkscape-3bbfb29347465809918421d6dafcd5c0816935e1.tar.gz inkscape-3bbfb29347465809918421d6dafcd5c0816935e1.zip | |
Implement cross-architecture print dialog using cairo and PNG backends.
(bzr r4199)
Diffstat (limited to 'src/extension/internal/cairo-render-context.cpp')
| -rw-r--r-- | src/extension/internal/cairo-render-context.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 8f106f55f..8511973e4 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -647,6 +647,10 @@ CairoRenderContext::addClippingRect(double x, double y, double width, double hei bool CairoRenderContext::setupSurface(double width, double height) { + // Is the surface already set up? + if (_is_valid) + return true; + if (_vector_based_target && _stream == NULL) return false; @@ -674,11 +678,12 @@ CairoRenderContext::setupSurface(double width, double height) } bool -CairoRenderContext::setSurface(cairo_surface_t *surface) +CairoRenderContext::setSurfaceTarget(cairo_surface_t *surface, bool is_vector) { if (_is_valid || !surface) return false; + _vector_based_target = is_vector; bool ret = _finishSurfaceSetup (surface); if (ret) cairo_surface_reference (surface); @@ -724,7 +729,7 @@ CairoRenderContext::finish(void) _is_valid = FALSE; - if (_vector_based_target) { + if (_vector_based_target && _stream) { /* Flush stream to be sure. */ (void) fflush(_stream); |
