summaryrefslogtreecommitdiffstats
path: root/src/extension/internal
diff options
context:
space:
mode:
authorAdib Taraben <theadib@gmail.com>2009-04-24 10:37:51 +0000
committertheadib <theadib@users.sourceforge.net>2009-04-24 10:37:51 +0000
commit6ebeb66c1f71f2c9b6bf2772316a78496b0165bc (patch)
tree1c324a3ddf745dbbb134825c0a490390aa39dcfe /src/extension/internal
parent* [INTL: sk] Slovak translation update (trunk) (diff)
downloadinkscape-6ebeb66c1f71f2c9b6bf2772316a78496b0165bc.tar.gz
inkscape-6ebeb66c1f71f2c9b6bf2772316a78496b0165bc.zip
apply printing w32 patch https://bugs.launchpad.net/inkscape/+bug/179988/comments/174
(bzr r7767)
Diffstat (limited to 'src/extension/internal')
-rw-r--r--src/extension/internal/cairo-render-context.cpp8
-rw-r--r--src/extension/internal/cairo-render-context.h4
2 files changed, 7 insertions, 5 deletions
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp
index 656cd4a08..e10b637f3 100644
--- a/src/extension/internal/cairo-render-context.cpp
+++ b/src/extension/internal/cairo-render-context.cpp
@@ -780,20 +780,20 @@ CairoRenderContext::setupSurface(double width, double height)
}
bool
-CairoRenderContext::setSurfaceTarget(cairo_surface_t *surface, bool is_vector)
+CairoRenderContext::setSurfaceTarget(cairo_surface_t *surface, bool is_vector, cairo_matrix_t *ctm)
{
if (_is_valid || !surface)
return false;
_vector_based_target = is_vector;
- bool ret = _finishSurfaceSetup (surface);
+ bool ret = _finishSurfaceSetup (surface, ctm);
if (ret)
cairo_surface_reference (surface);
return ret;
}
bool
-CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface)
+CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface, cairo_matrix_t *ctm)
{
if(surface == NULL) {
return FALSE;
@@ -803,6 +803,8 @@ CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface)
}
_cr = cairo_create(surface);
+ if (ctm)
+ cairo_set_matrix(_cr, ctm);
_surface = surface;
if (_vector_based_target) {
diff --git a/src/extension/internal/cairo-render-context.h b/src/extension/internal/cairo-render-context.h
index 23845598e..930668e03 100644
--- a/src/extension/internal/cairo-render-context.h
+++ b/src/extension/internal/cairo-render-context.h
@@ -85,7 +85,7 @@ public:
bool setPdfTarget(gchar const *utf8_fn);
bool setPsTarget(gchar const *utf8_fn);
/** Set the cairo_surface_t from an external source */
- bool setSurfaceTarget(cairo_surface_t *surface, bool is_vector);
+ bool setSurfaceTarget(cairo_surface_t *surface, bool is_vector, cairo_matrix_t *ctm=NULL);
void setPSLevel(unsigned int level);
void setEPS(bool eps);
@@ -187,7 +187,7 @@ protected:
unsigned int _showGlyphs(cairo_t *cr, PangoFont *font, std::vector<CairoGlyphInfo> const &glyphtext, bool is_stroke);
- bool _finishSurfaceSetup(cairo_surface_t *surface);
+ bool _finishSurfaceSetup(cairo_surface_t *surface, cairo_matrix_t *ctm = NULL);
void _setFillStyle(SPStyle const *style, NRRect const *pbox);
void _setStrokeStyle(SPStyle const *style, NRRect const *pbox);