tdf#131004 fix unstable paint of writer consecutive section frames

Change-Id: I565129dcd077ddbfccedb37dfbf1b9e1acf4eb95
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91532
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 2f7f4e4..ec99cac 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -853,8 +853,8 @@

void SwLineRects::LockLines( bool bLock )
{
    for (iterator it = aLineRects.begin(); it != aLineRects.end(); ++it)
       (*it).Lock( bLock );
    for (SwLineRect& rLRect : aLineRects)
       rLRect.Lock( bLock );
}

static void lcl_DrawDashedRect( OutputDevice * pOut, SwLineRect const & rLRect )
@@ -1033,7 +1033,7 @@
                                 ((nLi < rLk.Left() && nLi+21 > rLk.Left()) ||
                                  (nLk < rLi.Left() && nLk+21 > rLi.Left())))
                            {
                                aLineRects.erase(aLineRects.begin() + k);
                                aLineRects.erase(aLineRects.begin() + i);
                                // don't continue with inner loop any more:
                                // the array may shrink!
                                --i;
@@ -1048,7 +1048,7 @@
                                 ((nLi < rLk.Top() && nLi+21 > rLk.Top()) ||
                                  (nLk < rLi.Top() && nLk+21 > rLi.Top())))
                            {
                                aLineRects.erase(aLineRects.begin() + k);
                                aLineRects.erase(aLineRects.begin() + i);
                                // don't continue with inner loop any more:
                                // the array may shrink!
                                --i;