Do not use kerning between digits "1".
authorims <ims21@users.sourceforge.net>
Wed, 4 Feb 2015 21:03:03 +0000 (22:03 +0100)
committerErik Slagter <erik@openpli.org>
Thu, 5 Feb 2015 18:54:13 +0000 (19:54 +0100)
When is in line more than one digit 1 side by side, then is returned kerning and due it is rest of text moved left.
Then digits in more rows cannot be aligned. This patche sets kerning to zero for this case.

Signed-off-by: Erik Slagter <erik@openpli.org>

lib/gdi/font.cpp

index 611bbbb..155b0e2 100644 (file)
@@ -477,6 +477,10 @@ int eTextPara::appendGlyph(Font *current_font, FT_Face current_face, FT_UInt gly
                FT_Vector delta;
                FT_Get_Kerning(current_face, previous, glyphIndex, ft_kerning_default, &delta);
                kern=delta.x>>6;
+               /* for two digits "1" is returned kerning < 0. For aligning digits in rows must be kerning 0, same as is returned for others digits */
+               /* for this case is here kerning set to zero. */
+               if ( glyphIndex == 20 && previous == glyphIndex)
+                       kern = 0;
        }
 
        ng.bbox.setLeft(((flags&GS_ISFIRST)|cursor.x()) + left + xborder);