mirror of
https://github.com/reactos/reactos.git
synced 2026-05-30 23:33:24 +08:00
[GDI32] Fix Meta file packing recursion issues.
TextOut was looping back adding additional EMR packet to the meta file.
This commit is contained in:
@@ -475,6 +475,7 @@ ExtTextOutA(
|
||||
return ret;
|
||||
}
|
||||
|
||||
static BOOL bBypassETOWMF = FALSE;
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
@@ -493,25 +494,34 @@ ExtTextOutW(
|
||||
{
|
||||
PDC_ATTR pdcattr;
|
||||
|
||||
HANDLE_METADC(BOOL,
|
||||
ExtTextOut,
|
||||
FALSE,
|
||||
hdc,
|
||||
x,
|
||||
y,
|
||||
fuOptions,
|
||||
lprc,
|
||||
lpString,
|
||||
cwc,
|
||||
lpDx);
|
||||
if ( !bBypassETOWMF )
|
||||
{
|
||||
HANDLE_METADC(BOOL,
|
||||
ExtTextOut,
|
||||
FALSE,
|
||||
hdc,
|
||||
x,
|
||||
y,
|
||||
fuOptions,
|
||||
lprc,
|
||||
lpString,
|
||||
cwc,
|
||||
lpDx);
|
||||
}
|
||||
|
||||
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||
|
||||
if (!(fuOptions & (ETO_GLYPH_INDEX | ETO_IGNORELANGUAGE)))
|
||||
{
|
||||
bBypassETOWMF = TRUE;
|
||||
|
||||
if (LoadLPK(LPK_ETO))
|
||||
return LpkExtTextOut(hdc, x, y, fuOptions, lprc, lpString, cwc , lpDx, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
bBypassETOWMF = FALSE;
|
||||
}
|
||||
|
||||
/* Get the DC attribute */
|
||||
pdcattr = GdiGetDcAttr(hdc);
|
||||
|
||||
Reference in New Issue
Block a user