[WIN32SS] fix font extent.
authorKatayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
Wed, 25 Oct 2017 09:10:36 +0000 (18:10 +0900)
committerMark Jansen <mark.jansen@reactos.org>
Wed, 25 Oct 2017 19:10:35 +0000 (21:10 +0200)
CORE-13840

win32ss/gdi/ntgdi/freetype.c

index ca1af46..eb2fc77 100644 (file)
@@ -3570,6 +3570,7 @@ TextIntGetTextExtentPoint(PDC dc,
     PMATRIX pmxWorldToDevice;
     LOGFONTW *plf;
     BOOL EmuBold, EmuItalic;
+    LONG ascender, descender;
 
     FontGDI = ObjToGDI(TextObj->Font, FONT);
 
@@ -3676,13 +3677,12 @@ TextIntGetTextExtentPoint(PDC dc,
         previous = glyph_index;
         String++;
     }
+    ascender = (face->size->metrics.ascender + 32) >> 6; /* Units above baseline */
+    descender = (32 - face->size->metrics.descender) >> 6; /* Units below baseline */
     IntUnLockFreeType;
 
     Size->cx = (TotalWidth + 32) >> 6;
-    Size->cy = (plf->lfHeight == 0 ?
-                dc->ppdev->devinfo.lfDefaultFont.lfHeight :
-                abs(plf->lfHeight));
-    Size->cy = EngMulDiv(Size->cy, dc->ppdev->gdiinfo.ulLogPixelsY, 72);
+    Size->cy = ascender + descender;
 
     return TRUE;
 }