https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6b67ef6e101ab1b1d98d3…
commit 6b67ef6e101ab1b1d98d3c285213cde96628deda
Author: Mark Jansen <mark.jansen(a)reactos.org>
AuthorDate: Sat Sep 1 21:40:12 2018 +0200
Commit: Mark Jansen <mark.jansen(a)reactos.org>
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);