On Wed, Apr 14, 2021 at 03:28:30PM +0800, Zhiyi Zhang wrote:
Reselect font and pen into enhanced metafile device contexts after world transform is changed so that content can be drawn using the correct size. Also modifying the world transform for enhanced metafiles doesn't generate EMR_SELECTOBJECT records according to winedump outputs.
Fix an issue that Tally may produce a print preview with a too large font or with a black side bar.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com
dlls/gdi32/dc.c | 3 +- dlls/gdi32/enhmfdrv/dc.c | 78 ++++++++++++++++++++++++---- dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 + dlls/gdi32/enhmfdrv/init.c | 1 + dlls/gdi32/enhmfdrv/objects.c | 2 + dlls/gdi32/tests/metafile.c | 1 - 6 files changed, 72 insertions(+), 14 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index eb9dbf85668..74bf0a8dd50 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -363,8 +363,7 @@ void DC_UpdateXforms( DC *dc )
/* Reselect the font and pen back into the dc so that the size gets updated. */
- if (linear_xform_cmp( &oldworld2vport, &dc->xformWorld2Vport ) &&
!GdiIsMetaFileDC(dc->hSelf))
- if (linear_xform_cmp( &oldworld2vport, &dc->xformWorld2Vport )) {
What about wmf-style metafiles? We'll want to check those with a test.
Huw.