Module: wine Branch: master Commit: 083e61fddf90ade32a119d5b6bf84d27adefc589 URL: http://source.winehq.org/git/wine.git/?a=commit;h=083e61fddf90ade32a119d5b6b...
Author: Andrew Eikum aeikum@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@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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=083e61fddf90ade32a119d...