Commit 5621fdd412a0b02a5ed858baa7c2a9db4795ae1f

Werner Lemberg 2012-02-29T13:33:33

[autofit] Don't synchronize digit widths for light rendering mode. We don't hint horizontally in this mode. * src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>: Implement it.

diff --git a/ChangeLog b/ChangeLog
index c50ce95..2d89d12 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-02-29  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Don't synchronize digit widths for light rendering mode.
+
+	We don't hint horizontally in this mode.
+
+	* src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>:
+	Implement it.
+
 2012-02-26  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
 	[type42] Minor code optimization (again).
diff --git a/src/autofit/afloader.c b/src/autofit/afloader.c
index 84a7fa8..34ef9d8 100644
--- a/src/autofit/afloader.c
+++ b/src/autofit/afloader.c
@@ -433,9 +433,10 @@
         slot->metrics.horiAdvance = FT_MulFix( slot->metrics.horiAdvance,
                                                x_scale );
 #else
-      if ( FT_IS_FIXED_WIDTH( slot->face )                              ||
-           ( af_face_globals_is_digit( loader->globals, glyph_index ) &&
-             metrics->digits_have_same_width                          ) )
+      if ( scaler->render_mode != FT_RENDER_MODE_LIGHT                      &&
+           ( FT_IS_FIXED_WIDTH( slot->face )                              ||
+             ( af_face_globals_is_digit( loader->globals, glyph_index ) &&
+               metrics->digits_have_same_width                          ) ) )
       {
         slot->metrics.horiAdvance = FT_MulFix( slot->metrics.horiAdvance,
                                                metrics->scaler.x_scale );