Module: wine Branch: stable Commit: 173de6d66d3d61147ac433a55688d85eba5d79ab URL: https://source.winehq.org/git/wine.git/?a=commit;h=173de6d66d3d61147ac433a55...
Author: Akihiro Sagawa sagawa.aki@gmail.com Date: Sun Feb 18 21:33:57 2018 +0900
gdi32: Fix synthetic bold outline text metrics.
Without this fix, synthetic tmAveCharWidth value unintentionally affects SCALE_X calculation.
Signed-off-by: Akihiro Sagawa sagawa.aki@gmail.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit 68f9fb556d6ac51ed628d106a33737c13095fad4) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/gdi32/freetype.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 7016095..2a95643 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -7553,6 +7553,11 @@ static void scale_font_metrics(const GdiFont *font, LPTEXTMETRICW ptm) SCALE_Y(ptm->tmExternalLeading); SCALE_Y(ptm->tmOverhang);
+ if(FT_IS_SCALABLE(font->ft_face) && font->fake_bold) + { + ptm->tmAveCharWidth++; + ptm->tmMaxCharWidth++; + } SCALE_X(ptm->tmAveCharWidth); SCALE_X(ptm->tmMaxCharWidth);
@@ -7777,11 +7782,8 @@ static BOOL get_outline_text_metrics(GdiFont *font) } TM.tmMaxCharWidth = SCALE_X(ft_face->bbox.xMax - ft_face->bbox.xMin); TM.tmWeight = FW_REGULAR; - if (font->fake_bold) { - TM.tmAveCharWidth++; - TM.tmMaxCharWidth++; + if (font->fake_bold) TM.tmWeight = FW_BOLD; - } else { if (ft_face->style_flags & FT_STYLE_FLAG_BOLD)