File drawinglayer-metadata-decomposition.diff of Package libreoffice-bootstrap

commit 220ca4436d36d4ef4b40b13f38c3863603bbae2d
Author: Radek Doulik <rodo@novell.com>
Date:   Tue Feb 15 17:30:45 2011 +0100

    restrict metafile decomposition (fixes n#650049)
    
     - do not use metafile decomposition on metafiles which need
       canvas renderer (right now, these containing EMF+)

diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
index dfa3983..ff8d3f8 100644
--- drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
+++ drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
@@ -229,8 +229,10 @@ namespace drawinglayer
                         mpOutputDevice->SetAntialiasing(nOldAntiAliase | ANTIALIASING_PIXELSNAPHAIRLINE);
                     }
 
+                    const primitive2d::MetafilePrimitive2D& rMetafilePrimitive( static_cast< const primitive2d::MetafilePrimitive2D& >(rCandidate) );
+
                     static bool bTestMetaFilePrimitiveDecomposition(true);
-                    if(bTestMetaFilePrimitiveDecomposition)
+                    if( bTestMetaFilePrimitiveDecomposition && !rMetafilePrimitive.getMetaFile().GetUseCanvas() )
                     {
                         // use new Metafile decomposition
                         process(rCandidate.get2DDecomposition(getViewInformation2D()));
@@ -238,7 +240,7 @@ namespace drawinglayer
                     else
                     {
                         // direct draw of MetaFile
-                        RenderMetafilePrimitive2D(static_cast< const primitive2d::MetafilePrimitive2D& >(rCandidate));
+                        RenderMetafilePrimitive2D( rMetafilePrimitive );
                     }
                     
                     if(bForceLineSnap)
openSUSE Build Service is sponsored by