mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 07:32:57 +00: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:
parent
03516733ef
commit
a022dc8eaf
1 changed files with 21 additions and 11 deletions
|
@ -475,6 +475,7 @@ ExtTextOutA(
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL bBypassETOWMF = FALSE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
@ -493,6 +494,8 @@ ExtTextOutW(
|
||||||
{
|
{
|
||||||
PDC_ATTR pdcattr;
|
PDC_ATTR pdcattr;
|
||||||
|
|
||||||
|
if ( !bBypassETOWMF )
|
||||||
|
{
|
||||||
HANDLE_METADC(BOOL,
|
HANDLE_METADC(BOOL,
|
||||||
ExtTextOut,
|
ExtTextOut,
|
||||||
FALSE,
|
FALSE,
|
||||||
|
@ -504,14 +507,21 @@ ExtTextOutW(
|
||||||
lpString,
|
lpString,
|
||||||
cwc,
|
cwc,
|
||||||
lpDx);
|
lpDx);
|
||||||
|
}
|
||||||
|
|
||||||
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
if (!(fuOptions & (ETO_GLYPH_INDEX | ETO_IGNORELANGUAGE)))
|
if (!(fuOptions & (ETO_GLYPH_INDEX | ETO_IGNORELANGUAGE)))
|
||||||
{
|
{
|
||||||
|
bBypassETOWMF = TRUE;
|
||||||
|
|
||||||
if (LoadLPK(LPK_ETO))
|
if (LoadLPK(LPK_ETO))
|
||||||
return LpkExtTextOut(hdc, x, y, fuOptions, lprc, lpString, cwc , lpDx, 0);
|
return LpkExtTextOut(hdc, x, y, fuOptions, lprc, lpString, cwc , lpDx, 0);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bBypassETOWMF = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Get the DC attribute */
|
/* Get the DC attribute */
|
||||||
pdcattr = GdiGetDcAttr(hdc);
|
pdcattr = GdiGetDcAttr(hdc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue