[Libreoffice-commits] core.git: vcl/source

Caolán McNamara caolanm at redhat.com
Wed Jan 25 20:29:23 UTC 2017


 vcl/source/filter/wmf/emfwr.cxx |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

New commits:
commit 3d92c34d0a4db27435458e0f3dd50709622388a9
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Jan 25 16:51:00 2017 +0000

    Resolves: tdf#94457 our EmfPlusSetPageTransform is malformed
    
    we write a single short, resulting in a record of 0x000C in length MS-EMFPLUS
    spec has EmfPlusSetPageTransform as 0x0010 in length because we're not writing
    the 4 byte PageScale value.
    
    the previous pageunit unit we are writing is of value 1, which is
    UnitTypeDisplay, the same spec says...
    
    "The unit of measure for page space coordinates, from the UnitType enumeration.
    This value SHOULD NOT be UnitTypeDisplay or UnitTypeWorld"
    
    and footnotes that with...
    
    "Windows never writes those values to the PageUnit field, but they are accepted
    with undefined results."
    
    Change-Id: Ic8b5ec463b59aab28ae9897947dfcdbd35b22048
    Reviewed-on: https://gerrit.libreoffice.org/33548
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/source/filter/wmf/emfwr.cxx b/vcl/source/filter/wmf/emfwr.cxx
index 947d139..7eb9c63 100644
--- a/vcl/source/filter/wmf/emfwr.cxx
+++ b/vcl/source/filter/wmf/emfwr.cxx
@@ -102,8 +102,7 @@ enum class EmfPlusRecordType
     SetAntiAliasMode           = 0x401E,
     SetInterpolationMode       = 0x4021,
     SetPixelOffsetMode         = 0x4022,
-    SetCompositingQuality      = 0x4024,
-    SetPageTransform           = 0x4030,
+    SetCompositingQuality      = 0x4024
 };
 
 void EMFWriter::ImplBeginCommentRecord( sal_Int32 nCommentType )
@@ -190,7 +189,6 @@ void EMFWriter::WriteEMFPlusHeader( const Size &rMtfSizePix, const Size &rMtfSiz
     ImplPlusRecord( EmfPlusRecordType::SetPixelOffsetMode, 0x0 );
     ImplPlusRecord( EmfPlusRecordType::SetAntiAliasMode, 0x09 );      // TODO: Check actual values for AntiAlias
     ImplPlusRecord( EmfPlusRecordType::SetCompositingQuality, 0x0100 ); // Default Quality
-    ImplPlusRecord( EmfPlusRecordType::SetPageTransform, 1 );
     ImplPlusRecord( EmfPlusRecordType::SetInterpolationMode, 0x00 );  // Default
     ImplPlusRecord( EmfPlusRecordType::GetDC, 0x00 );
     ImplEndCommentRecord();


More information about the Libreoffice-commits mailing list