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

New commits:
commit c98467b7069ff06a8ff42832c3f2bdf193c487bd
Author:     Luboš Luňák <[email protected]>
AuthorDate: Thu Nov 12 15:38:43 2020 +0100
Commit:     Luboš Luňák <[email protected]>
CommitDate: Fri Nov 13 16:04:54 2020 +0100

    properly clip native VCL gradients (tdf#137563)
    
    If I'm getting it right, OutputDevice::InitClipRegion() sets
    mbOutputClipped = true if the entire output would be clipped,
    and it doesn't call SalGraphics::SetClipRegion() at all, instead
    OutputDevice draw calls are supposed to avoid the drawing entirely.
    But while the polygon fallback in OutputDevice::DrawGradient()
    does so, the call to SalGraphics::DrawGradient() didn't.
    
    Change-Id: Ib93bcad98534a3a3d9be26cdea11def51c796f00
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105759
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <[email protected]>

diff --git a/vcl/source/outdev/gradient.cxx b/vcl/source/outdev/gradient.cxx
index 32852eefc34e..f37bad807845 100644
--- a/vcl/source/outdev/gradient.cxx
+++ b/vcl/source/outdev/gradient.cxx
@@ -106,7 +106,8 @@ void OutputDevice::DrawGradient( const tools::PolyPolygon& 
rPolyPoly,
                     InitClipRegion();
 
                 // try to draw gradient natively
-                bDrawn = mpGraphics->DrawGradient( aClixPolyPoly, aGradient );
+                if (!mbOutputClipped)
+                    bDrawn = mpGraphics->DrawGradient( aClixPolyPoly, 
aGradient );
 
                 if (!bDrawn && !mbOutputClipped)
                 {
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to