[Libreoffice-commits] core.git: 2 commits - svx/source sw/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Sat May 11 07:10:32 UTC 2019


 svx/source/dialog/dialcontrol.cxx |    5 +++--
 svx/source/svdraw/svdogrp.cxx     |   27 ++++++++++++++++++---------
 svx/source/svdraw/svdopath.cxx    |    8 ++++++++
 sw/source/uibase/uiview/view.cxx  |   12 ++++++++----
 4 files changed, 37 insertions(+), 15 deletions(-)

New commits:
commit f8d29fea9915a5fe66e4ba24cbd3b248929b51b7
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri May 10 15:47:53 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat May 11 09:09:52 2019 +0200

    handle empty tools::Rectangle in svx
    
    Change-Id: I45e26c9cdc00ae6d3bc56534d612b83b5ac26074
    Reviewed-on: https://gerrit.libreoffice.org/72125
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/svx/source/dialog/dialcontrol.cxx b/svx/source/dialog/dialcontrol.cxx
index 547949ce5e2e..598caafc8201 100644
--- a/svx/source/dialog/dialcontrol.cxx
+++ b/svx/source/dialog/dialcontrol.cxx
@@ -212,8 +212,9 @@ void DialControlBmp::DrawBackground()
 
     SetLineColor();
     SetFillColor( GetBackgroundColor() );
-    DrawEllipse( tools::Rectangle( maRect.Left() + DIAL_OUTER_WIDTH, maRect.Top() + DIAL_OUTER_WIDTH,
-        maRect.Right() - DIAL_OUTER_WIDTH, maRect.Bottom() - DIAL_OUTER_WIDTH ) );
+    tools::Rectangle aEllipseRect = maRect;
+    aEllipseRect.shrink(DIAL_OUTER_WIDTH);
+    DrawEllipse( aEllipseRect );
 }
 
 
diff --git a/svx/source/svdraw/svdogrp.cxx b/svx/source/svdraw/svdogrp.cxx
index 61bca73c9a37..c50ba9524908 100644
--- a/svx/source/svdraw/svdogrp.cxx
+++ b/svx/source/svdraw/svdogrp.cxx
@@ -501,17 +501,26 @@ void SdrObjGroup::SetSnapRect(const tools::Rectangle& rRect)
 {
     tools::Rectangle aBoundRect0; if (pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
     tools::Rectangle aOld(GetSnapRect());
-    long nMulX=rRect.Right()-rRect.Left();
-    long nDivX=aOld.Right()-aOld.Left();
-    long nMulY=rRect.Bottom()-rRect.Top();
-    long nDivY=aOld.Bottom()-aOld.Top();
-    if (nDivX==0) { nMulX=1; nDivX=1; }
-    if (nDivY==0) { nMulY=1; nDivY=1; }
-    if (nMulX!=nDivX || nMulY!=nDivY) {
-        Fraction aX(nMulX,nDivX);
-        Fraction aY(nMulY,nDivY);
+    if (aOld.IsEmpty())
+    {
+        Fraction aX(1,1);
+        Fraction aY(1,1);
         Resize(aOld.TopLeft(),aX,aY);
     }
+    else
+    {
+        long nMulX=rRect.Right()-rRect.Left();
+        long nDivX=aOld.Right()-aOld.Left();
+        long nMulY=rRect.Bottom()-rRect.Top();
+        long nDivY=aOld.Bottom()-aOld.Top();
+        if (nDivX==0) { nMulX=1; nDivX=1; }
+        if (nDivY==0) { nMulY=1; nDivY=1; }
+        if (nMulX!=nDivX || nMulY!=nDivY) {
+            Fraction aX(nMulX,nDivX);
+            Fraction aY(nMulY,nDivY);
+            Resize(aOld.TopLeft(),aX,aY);
+        }
+    }
     if (rRect.Left()!=aOld.Left() || rRect.Top()!=aOld.Top()) {
         Move(Size(rRect.Left()-aOld.Left(),rRect.Top()-aOld.Top()));
     }
diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx
index 4c3d0f2040b9..12a7b2c1af39 100644
--- a/svx/source/svdraw/svdopath.cxx
+++ b/svx/source/svdraw/svdopath.cxx
@@ -2362,6 +2362,14 @@ void SdrPathObj::RecalcSnapRect()
 void SdrPathObj::NbcSetSnapRect(const tools::Rectangle& rRect)
 {
     tools::Rectangle aOld(GetSnapRect());
+    if (aOld.IsEmpty())
+    {
+        Fraction aX(1,1);
+        Fraction aY(1,1);
+        NbcResize(aOld.TopLeft(), aX, aY);
+        NbcMove(Size(rRect.Left() - aOld.Left(), rRect.Top() - aOld.Top()));
+        return;
+    }
 
     // Take empty into account when calculating scale factors
     long nMulX = rRect.IsWidthEmpty() ? 0 : rRect.Right()  - rRect.Left();
commit 08b79ade4f2e2fa98487696591123f71a7521dff
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri May 10 15:47:05 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat May 11 09:09:39 2019 +0200

    handle empty tools::Rectangle in sw
    
    Change-Id: I44c4b5a6d4f0aada0ed95d8cd4d05366958c6207
    Reviewed-on: https://gerrit.libreoffice.org/72124
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx
index c48a59c22841..67fce780a56a 100644
--- a/sw/source/uibase/uiview/view.cxx
+++ b/sw/source/uibase/uiview/view.cxx
@@ -1527,13 +1527,17 @@ void SwView::WriteUserDataSequence ( uno::Sequence < beans::PropertyValue >& rSe
 
     aVector.push_back(comphelper::makePropertyValue("ViewTop", convertTwipToMm100 ( rRect.Top() )));
 
-    aVector.push_back(comphelper::makePropertyValue("VisibleLeft", convertTwipToMm100 ( rVis.Left() )));
+    auto visibleLeft = convertTwipToMm100 ( rVis.Left() );
+    aVector.push_back(comphelper::makePropertyValue("VisibleLeft", visibleLeft));
 
-    aVector.push_back(comphelper::makePropertyValue("VisibleTop", convertTwipToMm100 ( rVis.Top() )));
+    auto visibleTop = convertTwipToMm100 ( rVis.Top() );
+    aVector.push_back(comphelper::makePropertyValue("VisibleTop", visibleTop));
 
-    aVector.push_back(comphelper::makePropertyValue("VisibleRight", convertTwipToMm100 ( rVis.Right() )));
+    auto visibleRight = rVis.IsWidthEmpty() ? visibleLeft : convertTwipToMm100 ( rVis.Right() );
+    aVector.push_back(comphelper::makePropertyValue("VisibleRight", visibleRight));
 
-    aVector.push_back(comphelper::makePropertyValue("VisibleBottom", convertTwipToMm100 ( rVis.Bottom() )));
+    auto visibleBottom = rVis.IsHeightEmpty() ? visibleTop : convertTwipToMm100 ( rVis.Bottom() );
+    aVector.push_back(comphelper::makePropertyValue("VisibleBottom", visibleBottom));
 
     const sal_Int16 nZoomType = static_cast< sal_Int16 >(m_pWrtShell->GetViewOptions()->GetZoomType());
     aVector.push_back(comphelper::makePropertyValue("ZoomType", nZoomType));


More information about the Libreoffice-commits mailing list