summaryrefslogtreecommitdiffstats
path: root/src/libnrtype
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnrtype')
-rw-r--r--src/libnrtype/Layout-TNG-Output.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libnrtype/Layout-TNG-Output.cpp b/src/libnrtype/Layout-TNG-Output.cpp
index b2de090a0..aa3875048 100644
--- a/src/libnrtype/Layout-TNG-Output.cpp
+++ b/src/libnrtype/Layout-TNG-Output.cpp
@@ -141,6 +141,7 @@ void Layout::print(SPPrintContext *ctx,
{
if (_input_stream.empty()) return;
+ Geom::Matrix ctm_2geom(ctm);
Direction block_progression = _blockProgression();
bool text_to_path = ctx->module->textToPath();
for (unsigned glyph_index = 0 ; glyph_index < _glyphs.size() ; ) {
@@ -160,9 +161,9 @@ void Layout::print(SPPrintContext *ctx,
_getGlyphTransformMatrix(glyph_index, &glyph_matrix);
Geom::PathVector temp_pv = (*pv) * glyph_matrix;
if (!text_source->style->fill.isNone())
- sp_print_fill(ctx, temp_pv, &ctm, text_source->style, pbox, dbox, bbox);
+ sp_print_fill(ctx, temp_pv, &ctm_2geom, text_source->style, pbox, dbox, bbox);
if (!text_source->style->stroke.isNone())
- sp_print_stroke(ctx, temp_pv, &ctm, text_source->style, pbox, dbox, bbox);
+ sp_print_stroke(ctx, temp_pv, &ctm_2geom, text_source->style, pbox, dbox, bbox);
}
glyph_index++;
} else {
@@ -297,14 +298,14 @@ void Layout::showGlyphs(CairoRenderContext *ctx) const
if (_path_fitted) {
ctx->pushState();
- ctx->transform(&glyph_matrix);
+ ctx->transform(&to_2geom(glyph_matrix));
} else if (opacity != 1.0) {
ctx->pushState();
ctx->setStateForStyle(style);
ctx->pushLayer();
}
if (glyph_index - first_index > 0)
- ctx->renderGlyphtext(span.font->pFont, &font_matrix, glyphtext, style);
+ ctx->renderGlyphtext(span.font->pFont, &to_2geom(font_matrix), glyphtext, style);
if (_path_fitted)
ctx->popState();
else if (opacity != 1.0) {