summaryrefslogtreecommitdiff
path: root/src/cairo/cdcairo.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo/cdcairo.c')
-rw-r--r--src/cairo/cdcairo.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cairo/cdcairo.c b/src/cairo/cdcairo.c
index 960a0d1..1b7f867 100644
--- a/src/cairo/cdcairo.c
+++ b/src/cairo/cdcairo.c
@@ -127,6 +127,7 @@ void cdcairoKillCanvas(cdCtxCanvas *ctxcanvas)
static void cdflush(cdCtxCanvas *ctxcanvas)
{
+ cairo_surface_flush(cairo_get_target(ctxcanvas->cr));
cairo_show_page(ctxcanvas->cr);
}
@@ -871,6 +872,9 @@ static void cdftext(cdCtxCanvas *ctxcanvas, double x, double y, const char *s, i
{
cairo_save (ctxcanvas->cr);
cairo_identity_matrix(ctxcanvas->cr);
+
+ if (ctxcanvas->job)
+ cairo_scale(ctxcanvas->cr, 0.25, 0.25); /* ??? */
}
if (ctxcanvas->canvas->text_orientation)
@@ -1652,10 +1656,14 @@ static void cdtransform(cdCtxCanvas *ctxcanvas, const double* matrix)
{
/* reset to identity */
cairo_identity_matrix(ctxcanvas->cr);
- ctxcanvas->canvas->invert_yaxis = 1;
+
+ if (ctxcanvas->job)
+ cairo_scale(ctxcanvas->cr, 0.254, 0.254);
if (matrix)
ctxcanvas->canvas->invert_yaxis = 0;
+ else
+ ctxcanvas->canvas->invert_yaxis = 1;
sSetTransform(ctxcanvas, matrix);
}