git.asbjorn.biz
/
swftools.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
62968dd
)
keep advances positive when transforming a font
author
Matthias Kramm
<kramm@quiss.org>
Tue, 9 Mar 2010 22:38:31 +0000
(14:38 -0800)
committer
Matthias Kramm
<kramm@quiss.org>
Tue, 9 Mar 2010 22:38:31 +0000
(14:38 -0800)
lib/filters/remove_font_transforms.c
patch
|
blob
|
history
diff --git
a/lib/filters/remove_font_transforms.c
b/lib/filters/remove_font_transforms.c
index
b57306b
..
16d02ad
100644
(file)
--- a/
lib/filters/remove_font_transforms.c
+++ b/
lib/filters/remove_font_transforms.c
@@
-203,17
+203,20
@@
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);
gfxline_t*line = font->glyphs[t].line;
gfxbbox_t b = gfxline_getbbox(line);
total = gfxbbox_expand_to_bbox(total, b);
- font->glyphs[t].advance = b.xmax;
+ if(b.xmax > 0)
+ font->glyphs[t].advance = b.xmax;
}
if(count)
average_xmax /= count;
fd->dx = -total.xmin;
fd->dy = 0;
}
if(count)
average_xmax /= count;
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;
for(t=0;t<count;t++) {
gfxline_t*line = font->glyphs[t].line;
- font->glyphs[t].advance += fd->dx;
+ font->glyphs[t].advance += adx;
while(line) {
line->x += fd->dx;
line->y += fd->dy;
while(line) {
line->x += fd->dx;
line->y += fd->dy;