summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2017-04-30 17:25:11 +0200
committerWerner Lemberg <wl@gnu.org>2017-04-30 17:25:11 +0200
commit7abf0cb758b4b470a0a0671e290669aeefbe0b90 (patch)
treea02bc274c913607b975c3515ad5e1a735bfc436f
parent785833d96eacab4af67dc6be53571441df6d8a5b (diff)
downloadfreetype2-7abf0cb758b4b470a0a0671e290669aeefbe0b90.tar.gz
[autofit] Fix metrics computation.
Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de> and Nikolaus Waxweiler <madigens@gmail.com>. * src/base/ftobjs.c (FT_Request_Size): Trigger recomputation of auto-hinter metrics. Without this change, multiple size changing calls for a single face fail.
-rw-r--r--ChangeLog11
-rw-r--r--src/base/ftobjs.c4
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index f4d31fbe3..b1ad07b28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2017-04-30 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix metrics computation.
+
+ Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de> and
+ Nikolaus Waxweiler <madigens@gmail.com>.
+
+ * src/base/ftobjs.c (FT_Request_Size): Trigger recomputation of
+ auto-hinter metrics. Without this change, multiple size changing
+ calls for a single face fail.
+
2017-04-29 Werner Lemberg <wl@gnu.org>
* src/truetype/ttdriver.c (tt_size_request): Properly check `error'.
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 7a9169b32..cbc771322 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -3061,6 +3061,10 @@
req->type >= FT_SIZE_REQUEST_TYPE_MAX )
return FT_THROW( Invalid_Argument );
+ /* signal the auto-hinter to recompute its size metrics */
+ /* (if requested) */
+ face->size->internal->autohint_metrics.x_scale = 0;
+
clazz = face->driver->clazz;
if ( clazz->request_size )