Andrew Eikum : gdi32: Update metafile world transform immediately in winnt mode.

Alexandre Julliard julliard at winehq.org
Fri Aug 25 12:30:12 CDT 2017


Module: wine
Branch: master
Commit: 083e61fddf90ade32a119d5b6bf84d27adefc589
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=083e61fddf90ade32a119d5b6bf84d27adefc589

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Fri Aug 25 08:10:44 2017 -0500

gdi32: Update metafile world transform immediately in winnt mode.

The Chrome browser print function implements their own handling for
EMR_MODIFYWORLDTRANSFORM which calls ModifyWorldTransform on the HDC
directly without ever calling PlayEnhMetaFileRecord. In Wine, this
transformation would get discarded when the callback function returned,
causing the page to be printed at the wrong scale.

Tests show that the transform is updated immediately during
PlayEnhMetaFileRecord. In addition, a modified transform persists
between callbacks until PlayEnhMetaFileRecord is called on a relevant
type of callback, at which point the transform is reverted before
playing back the record.

Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/enhmetafile.c    |  41 ++++++-
 dlls/gdi32/tests/metafile.c | 253 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 289 insertions(+), 5 deletions(-)

Diff:   http://source.winehq.org/git/wine.git/?a=commitdiff;h=083e61fddf90ade32a119d5b6bf84d27adefc589



More information about the wine-cvs mailing list