summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2018-03-07 12:21:45 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-03-14 13:19:39 +0100
commit3f7fa0cc2ff64b81d96b160584a534f2f91e8a15 (patch)
treef828b41ed3def2e5b4c37cbd5e8d687fdfa5284e
parent30e3c1c571f3a545143adaceb91102b7d6e329a3 (diff)
VCL canvas: fix clipping of gradients (related: tdf#115142)
When using the presenter console, the secondary screen has a small view of the current slide, which is called a "Pane" in sdext. Clipping for this is done by sd::presenter::PresenterCanvas, which wraps the full-screen VCL canvas and has a MergeViewState() to intersect the clip region. The VCL canvas has a bug in its gradientFill() implemenation where it overrides the existing clip on the OutputDevice instead of intersecting it. This properly fixes the bug that was wrongly and badly attempted to be fixed by commit 99e373cd4c78084ded349f3e3de7b0504af2dd90. Change-Id: Id02678c2f134fe7b190866d6a6fff5b2e5e3aaff (cherry picked from commit 5d710cf7dda27e78f237211fd92418be4dd1c551) Reviewed-on: https://gerrit.libreoffice.org/50888 Tested-by: Michael Stahl <mstahl@redhat.com> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit c59c43ecfb7b858557c82bb3733ba72f0f23d3df) Reviewed-on: https://gerrit.libreoffice.org/50931 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--canvas/source/vcl/canvashelper_texturefill.cxx2
1 files changed, 1 insertions, 1 deletions
diff --git a/canvas/source/vcl/canvashelper_texturefill.cxx b/canvas/source/vcl/canvashelper_texturefill.cxx
index 61a8eaa5cb75..cfb1e4f6bb7a 100644
--- a/canvas/source/vcl/canvashelper_texturefill.cxx
+++ b/canvas/source/vcl/canvashelper_texturefill.cxx
@@ -604,7 +604,7 @@ namespace vclcanvas
const vcl::Region aPolyClipRegion( rPoly );
rOutDev.Push( PushFlags::CLIPREGION );
- rOutDev.SetClipRegion( aPolyClipRegion );
+ rOutDev.IntersectClipRegion( aPolyClipRegion );
doGradientFill( rOutDev,
rValues,