[PATCH 1/3] gdi32: Use correct name for elfFullName.

Grazvydas Ignotas notasas at gmail.com
Tue Aug 23 15:11:57 CDT 2011


elfFullName (returned by EnumFontFamilies) usually matches FamilyName,
but not for all fonts, we need to use FullName instead.
---
 dlls/gdi32/freetype.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 426dc05..716a37f 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -4085,7 +4085,7 @@ static void GetEnumStructs(Face *face, LPENUMLOGFONTEXW pelf,
                  (WCHAR*)((char*)font->potm + (ULONG_PTR)font->potm->otmpFamilyName),
                  LF_FACESIZE);
         lstrcpynW(pelf->elfFullName,
-                 (WCHAR*)((char*)font->potm + (ULONG_PTR)font->potm->otmpFaceName),
+                 (WCHAR*)((char*)font->potm + (ULONG_PTR)font->potm->otmpFullName),
                  LF_FULLFACESIZE);
         lstrcpynW(pelf->elfStyle,
                  (WCHAR*)((char*)font->potm + (ULONG_PTR)font->potm->otmpStyleName),
@@ -4098,7 +4098,10 @@ static void GetEnumStructs(Face *face, LPENUMLOGFONTEXW pelf,
         pntm->ntmTm.ntmSizeEM = pntm->ntmTm.tmHeight - pntm->ntmTm.tmInternalLeading;
 
         lstrcpynW(pelf->elfLogFont.lfFaceName, face->family->FamilyName, LF_FACESIZE);
-        lstrcpynW(pelf->elfFullName, face->family->FamilyName, LF_FULLFACESIZE);
+        if (face->FullName)
+            lstrcpynW(pelf->elfFullName, face->FullName, LF_FULLFACESIZE);
+        else
+            lstrcpynW(pelf->elfFullName, face->family->FamilyName, LF_FULLFACESIZE);
         lstrcpynW(pelf->elfStyle, face->StyleName, LF_FACESIZE);
     }
 
-- 
1.7.0.4




More information about the wine-patches mailing list