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

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Mon Apr 20 06:13:42 UTC 2020


 sw/source/core/bastyp/swrect.cxx |   18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

New commits:
commit 7cc0d390e41f9f3c312aca6977a946c358eb1f3e
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Sun Apr 19 20:16:36 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Apr 20 08:13:09 2020 +0200

    fix SwRect::Intersection
    
    the comment is correct, the code not so much
    
    Change-Id: Ia0d87538c440bcc0133ed870a4404ecad5b24eba
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92506
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/source/core/bastyp/swrect.cxx b/sw/source/core/bastyp/swrect.cxx
index 09246fe2c70e..d443c85d99c3 100644
--- a/sw/source/core/bastyp/swrect.cxx
+++ b/sw/source/core/bastyp/swrect.cxx
@@ -77,19 +77,15 @@ SwRect& SwRect::Intersection( const SwRect& rRect )
     return *this;
 }
 
-SwRect& SwRect::Intersection_( const SwRect& rRect )
+SwRect& SwRect::Intersection_( const SwRect& rOther )
 {
     // get smaller right and lower, and greater left and upper edge
-    if ( Left() < rRect.Left() )
-        Left( rRect.Left() );
-    if ( Top() < rRect.Top() )
-        Top( rRect.Top() );
-    long n = rRect.Right();
-    if ( Right() > n )
-        Right( n );
-    n = rRect.Bottom();
-    if ( Bottom() > n )
-        Bottom( n );
+    auto left   = std::max( m_Point.X(), rOther.m_Point.X() );
+    auto top    = std::max( m_Point.Y(), rOther.m_Point.Y() );
+    long right  = std::min( m_Point.X() + m_Size.Width(), rOther.m_Point.X() + rOther.m_Size.Width() );
+    auto bottom = std::min( m_Point.Y() + m_Size.Height(), rOther.m_Point.Y() + rOther.m_Size.Height() );
+
+    *this = SwRect( left, top, right - left, bottom - top );
 
     return *this;
 }


More information about the Libreoffice-commits mailing list