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

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

Module: wine
Branch: master
Commit: 083e61fddf90ade32a119d5b6bf84d27adefc589

Author: Andrew Eikum <aeikum at>
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>
Signed-off-by: Huw Davies <huw at>
Signed-off-by: Alexandre Julliard <julliard at>


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


More information about the wine-cvs mailing list