[WIN32K] Don't call IntIsFontRenderingEnabled() while holding an exclusive GDI object lock.

Should fix GUI hangs.

svn path=/trunk/; revision=75582
This commit is contained in:
Timo Kreuzer 2017-08-17 09:08:57 +00:00
parent 7607ced6c6
commit e1e2478e77

View file

@ -5111,6 +5111,10 @@ GreExtTextOutW(
return FALSE;
}
/* NOTE: This function locks the screen DC, so it must never be called
with a DC already locked */
Render = IntIsFontRenderingEnabled();
// TODO: Write test-cases to exactly match real Windows in different
// bad parameters (e.g. does Windows check the DC or the RECT first?).
dc = DC_LockDc(hDC);
@ -5238,7 +5242,6 @@ GreExtTextOutW(
EmuBold = (plf->lfWeight >= FW_BOLD && FontGDI->OriginalWeight <= FW_NORMAL);
EmuItalic = (plf->lfItalic && !FontGDI->OriginalItalic);
Render = IntIsFontRenderingEnabled();
if (Render)
RenderMode = IntGetFontRenderMode(plf);
else