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