[Libreoffice-commits] core.git: Branch 'libreoffice-6-3' - vcl/source

Jan-Marek Glogowski (via logerrit) logerrit at kemper.freedesktop.org
Fri Jun 21 15:01:45 UTC 2019


 vcl/source/outdev/gradient.cxx |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 6047d537b5ea8f13f7e8d4739621c866af1d13fb
Author:     Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Mon Jun 3 22:52:05 2019 +0000
Commit:     Jan-Marek Glogowski <glogow at fbihome.de>
CommitDate: Fri Jun 21 17:00:46 2019 +0200

    tdf#125670 just check gradient clipping on drawing
    
    Otherwise the gradient won't be commited to the Metafile, as
    mbOutputClipped will be true, because the output device will
    have just one pixel size.
    
    Reviewed-on: https://gerrit.libreoffice.org/73423
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 710f3c63af2d8bee7d5e860614145799a3f0e491)
    
    tdf#125777 restore old RenderContext before return
    
    Related: tdf#125670 avoid possible performance issues for the general case
    
    but retain recording of gradient to metafile
    
    6acf23675414983bd07639703f43aa934c0a48ed
    5efde15f1c192b15fe647362803442ac947b63de
    
    Change-Id: Ia0c6569a28f2aa1a8f0e051b61d429e0ab23ef97
    Reviewed-on: https://gerrit.libreoffice.org/74507
    Tested-by: Jenkins
    Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>

diff --git a/vcl/source/outdev/gradient.cxx b/vcl/source/outdev/gradient.cxx
index fad0604920e0..cfc3f4a285d7 100644
--- a/vcl/source/outdev/gradient.cxx
+++ b/vcl/source/outdev/gradient.cxx
@@ -53,7 +53,7 @@ void OutputDevice::DrawGradient( const tools::PolyPolygon& rPolyPoly,
     if ( mbInitClipRegion )
         InitClipRegion();
 
-    if ( mbOutputClipped )
+    if (mbOutputClipped && !mpMetaFile)
         return;
 
     if ( rPolyPoly.Count() && rPolyPoly[ 0 ].GetSize() )
@@ -107,6 +107,12 @@ void OutputDevice::DrawGradient( const tools::PolyPolygon& rPolyPoly,
                 if( mbInitClipRegion )
                     InitClipRegion();
 
+                if (mbOutputClipped)
+                {
+                    Pop();
+                    return;
+                }
+
                 // try to draw gradient natively
                 bDrawn = mpGraphics->DrawGradient( aClixPolyPoly, aGradient );
 


More information about the Libreoffice-commits mailing list