drawinglayer/source/processor2d/vclpixelprocessor2d.cxx |    6 ++++--
 include/drawinglayer/geometry/viewinformation2d.hxx     |    2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

New commits:
commit 6a57652cfc2e46a271091246cd867804c39f845c
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Wed Aug 31 17:22:08 2022 +0200
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Thu Sep 1 13:17:19 2022 +0200

    fix limiting drawing of softedge effect (tdf#141981)
    
    Apparently an empty viewport actually means everything should be drawn.
    
    Change-Id: I55ae453a8f264d48222ade48a2953ab7d97c7f79
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138991
    Tested-by: Jenkins
    Tested-by: Caolán McNamara <caol...@redhat.com>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
index 087f6bcedb37..9eb5a00410ac 100644
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
@@ -1072,7 +1072,8 @@ void VclPixelProcessor2D::processGlowPrimitive2D(const 
primitive2d::GlowPrimitiv
 
         // Limit the bitmap size to the visible area.
         basegfx::B2DRange bitmapRange(aRange);
-        bitmapRange.intersect(aExpandedViewInfo.getDiscreteViewport());
+        if (!aExpandedViewInfo.getDiscreteViewport().isEmpty())
+            bitmapRange.intersect(aExpandedViewInfo.getDiscreteViewport());
         if (!bitmapRange.isEmpty())
         {
             const tools::Rectangle aRect(
@@ -1133,7 +1134,8 @@ void VclPixelProcessor2D::processSoftEdgePrimitive2D(
 
         // Limit the bitmap size to the visible area.
         basegfx::B2DRange bitmapRange(aRange);
-        bitmapRange.intersect(aExpandedViewInfo.getDiscreteViewport());
+        if (!aExpandedViewInfo.getDiscreteViewport().isEmpty())
+            bitmapRange.intersect(aExpandedViewInfo.getDiscreteViewport());
         if (!bitmapRange.isEmpty())
         {
             const tools::Rectangle aRect(
diff --git a/include/drawinglayer/geometry/viewinformation2d.hxx 
b/include/drawinglayer/geometry/viewinformation2d.hxx
index 41d2365cc628..800015f26157 100644
--- a/include/drawinglayer/geometry/viewinformation2d.hxx
+++ b/include/drawinglayer/geometry/viewinformation2d.hxx
@@ -121,6 +121,7 @@ public:
     /// data access
     const basegfx::B2DHomMatrix& getObjectTransformation() const;
     const basegfx::B2DHomMatrix& getViewTransformation() const;
+    /// Empty viewport means everything is visible.
     const basegfx::B2DRange& getViewport() const;
     double getViewTime() const;
     const css::uno::Reference<css::drawing::XDrawPage>& getVisualizedPage() 
const;
@@ -130,6 +131,7 @@ public:
     const basegfx::B2DHomMatrix& getInverseObjectToViewTransformation() const;
 
     /// On-demand prepared Viewport in discrete units for convenience
+    /// Empty viewport means everything is visible.
     const basegfx::B2DRange& getDiscreteViewport() const;
 
     /** support reduced DisplayQuality, PropertyName is 
'ReducedDisplayQuality'. This

Reply via email to