summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Kramm <kramm@quiss.org>2010-03-09 15:10:52 -0800
committerMatthias Kramm <kramm@quiss.org>2010-03-09 15:10:52 -0800
commitb9e9d6ddd0438ec3e2ce30e88629f80da0d224ed (patch)
treec41010d480296ba817ed9252449c77d8255e1d50
parentb9f1e7011f2ad4be624ab777a5091623a807b3d9 (diff)
don't regenerate advance values during font transform
-rw-r--r--lib/filters/remove_font_transforms.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/filters/remove_font_transforms.c b/lib/filters/remove_font_transforms.c
index 16d02add..2c7b1e5c 100644
--- a/lib/filters/remove_font_transforms.c
+++ b/lib/filters/remove_font_transforms.c
@@ -166,6 +166,8 @@ static void glyph_transform(gfxglyph_t*g, mymatrix_t*mm)
m.ty = 0;
g->line = gfxline_clone(g->line);
gfxline_transform(g->line, &m);
+ if(m.m00>0)
+ g->advance *= m.m00;
}
static gfxresult_t* pass1_finish(gfxfilter_t*f, gfxdevice_t*out)
@@ -203,8 +205,6 @@ static gfxresult_t* pass1_finish(gfxfilter_t*f, gfxdevice_t*out)
gfxline_t*line = font->glyphs[t].line;
gfxbbox_t b = gfxline_getbbox(line);
total = gfxbbox_expand_to_bbox(total, b);
- if(b.xmax > 0)
- font->glyphs[t].advance = b.xmax;
}
if(count)
average_xmax /= count;
@@ -212,11 +212,8 @@ static gfxresult_t* pass1_finish(gfxfilter_t*f, gfxdevice_t*out)
fd->dx = -total.xmin;
fd->dy = 0;
- double adx = fd->dx>0?fd->dx:0;
-
for(t=0;t<count;t++) {
gfxline_t*line = font->glyphs[t].line;
- font->glyphs[t].advance += adx;
while(line) {
line->x += fd->dx;
line->y += fd->dy;