https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6b67ef6e101ab1b1d98d3c285213cde96628deda

commit 6b67ef6e101ab1b1d98d3c285213cde96628deda
Author:     Mark Jansen <[email protected]>
AuthorDate: Sat Sep 1 21:40:12 2018 +0200
Commit:     Mark Jansen <[email protected]>
CommitDate: Wed Sep 12 21:33:45 2018 +0200

    [WIN32K] Realize PTEXTOBJ in FontGetObject if it was not initialized
---
 win32ss/gdi/ntgdi/font.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/win32ss/gdi/ntgdi/font.c b/win32ss/gdi/ntgdi/font.c
index 7d1aebbb66..ecf16c6baf 100644
--- a/win32ss/gdi/ntgdi/font.c
+++ b/win32ss/gdi/ntgdi/font.c
@@ -109,7 +109,7 @@ GreGetKerningPairs(
   currently selected font. If not valid, GetCharacterPlacement ignores the
   value.
 
-  M$ must use a preset "compiled in" support for each language based releases.
+  MS must use a preset "compiled in" support for each language based releases.
   ReactOS uses FreeType, this will need to be supported. ATM this is hard coded
   for GCPCLASS_LATIN!
 
@@ -295,6 +295,18 @@ FontGetObject(PTEXTOBJ plfont, ULONG cjBuffer, PVOID 
pvBuffer)
     ULONG cjMaxSize;
     ENUMLOGFONTEXDVW *plf = &plfont->logfont;
 
+    if (!(plfont->fl & TEXTOBJECT_INIT))
+    {
+        NTSTATUS Status;
+        DPRINT1("FontGetObject font not initialized!\n");
+
+        Status = TextIntRealizeFont(plfont->BaseObject.hHmgr, plfont);
+        if (!NT_SUCCESS(Status))
+        {
+            DPRINT1("FontGetObject(TextIntRealizeFont) Status = 0x%lx\n", 
Status);
+        }
+    }
+
     /* If buffer is NULL, only the size is requested */
     if (pvBuffer == NULL) return sizeof(LOGFONTW);
 

Reply via email to