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
