diff --git a/src/draw.c b/src/draw.c index c44c9fe7..59f3fd27 100644 --- a/src/draw.c +++ b/src/draw.c @@ -355,10 +355,10 @@ void draw_string(int layer, int what, const char *str, short rot, short flip, in return; } else { + xscale*=tclgetdoublevar("nocairo_font_xscale") * cairo_font_scale; + yscale*=tclgetdoublevar("nocairo_font_yscale") * cairo_font_scale; text_bbox(str, xscale, yscale, rot, flip, hcenter, vcenter, x1,y1, &textx1,&texty1,&textx2,&texty2, &no_of_lines, &longest_line); - xscale*=tclgetdoublevar("nocairo_font_xscale"); - yscale*=tclgetdoublevar("nocairo_font_yscale"); if(!textclip(xctx->areax1,xctx->areay1,xctx->areax2,xctx->areay2, textx1,texty1,textx2,texty2)) return; x1=textx1;y1=texty1; diff --git a/src/psprint.c b/src/psprint.c index 1c2cb1c8..c5c357f3 100644 --- a/src/psprint.c +++ b/src/psprint.c @@ -740,6 +740,8 @@ static void old_ps_draw_string(int gctext, const char *str, double longest_line; if(str==NULL) return; + xscale*=tclgetdoublevar("nocairo_font_xscale") * cairo_font_scale; + yscale*=tclgetdoublevar("nocairo_font_yscale") * cairo_font_scale; #if HAS_CAIRO==1 text_bbox_nocairo(str, xscale, yscale, rot, flip, hcenter, vcenter, x1,y1, &rx1,&ry1,&rx2,&ry2, &no_of_lines, &longest_line); @@ -747,8 +749,6 @@ static void old_ps_draw_string(int gctext, const char *str, text_bbox(str, xscale, yscale, rot, flip, hcenter, vcenter, x1,y1, &rx1,&ry1,&rx2,&ry2, &no_of_lines, &longest_line); #endif - xscale*=tclgetdoublevar("nocairo_font_xscale"); - yscale*=tclgetdoublevar("nocairo_font_yscale"); if(!textclip(xctx->areax1,xctx->areay1,xctx->areax2,xctx->areay2,rx1,ry1,rx2,ry2)) return; set_ps_colors(gctext); diff --git a/src/svgdraw.c b/src/svgdraw.c index cf51f973..391b9025 100644 --- a/src/svgdraw.c +++ b/src/svgdraw.c @@ -389,6 +389,8 @@ static void old_svg_draw_string(int layer, const char *str, double longest_line; if(str==NULL) return; + xscale*=tclgetdoublevar("nocairo_font_xscale") * cairo_font_scale; + yscale*=tclgetdoublevar("nocairo_font_yscale") * cairo_font_scale; #if HAS_CAIRO==1 text_bbox_nocairo(str, xscale, yscale, rot, flip, hcenter, vcenter, x,y, &rx1,&ry1,&rx2,&ry2, &no_of_lines, &longest_line); @@ -396,8 +398,6 @@ static void old_svg_draw_string(int layer, const char *str, text_bbox(str, xscale, yscale, rot, flip, hcenter, vcenter, x,y, &rx1,&ry1,&rx2,&ry2, &no_of_lines, &longest_line); #endif - xscale*=tclgetdoublevar("nocairo_font_xscale"); - yscale*=tclgetdoublevar("nocairo_font_yscale"); if(!textclip(xctx->areax1,xctx->areay1,xctx->areax2,xctx->areay2,rx1,ry1,rx2,ry2)) return; x=rx1;y=ry1; if(rot&1) {y=ry2;rot=3;}