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

Miklos Vajna vmiklos at collabora.co.uk
Thu Jul 13 19:11:04 UTC 2017


 sw/source/core/layout/flowfrm.cxx |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 4908d6d6742e2f0700ea4ccd9d636d91ea281046
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jul 13 15:54:23 2017 +0200

    tdf#108524 sw: allow frames in follow sect-in-tables in SwFlowFrame::MoveBwd()
    
    The intention is to filter out text frames directly inside tables; since
    tables in general reflow by moving all of the content to the first page,
    then moving not fitting content to the next pages.  Section frames are
    different, there we explicitly move content backwards, similarly to page
    body frames.
    
    Teach SwFlowFrame::MoveFwd() that a text frame inside a section-in-table
    is the section situation, not the table situation, since what matters
    here is the direct parent. To be on the safe side allow this for follow
    section frames only.
    
    This is necessary, but not enough to address the sub-problem described
    in comment 12 of the bug. At least SwFrame::GetPrevSctLeaf() is invoked
    to consider a precede section frame, though.
    
    Change-Id: Ic88602cffefbbc81ecc90e3880be2a098f60fb04

diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index aa11035d2a3c..d69501935d2c 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -2026,7 +2026,10 @@ bool SwFlowFrame::MoveBwd( bool &rbReformat )
             {
                 return false;
             }
-            if ( pUpperFrame->IsColumnFrame() && pUpperFrame->IsInSct() )
+            // If the text frame is a follow-section-in-table, that can move
+            // backward as well.
+            bool bIsFollowSection = pUpperFrame->IsSctFrame() && static_cast<const SwSectionFrame*>(pUpperFrame)->GetPrecede();
+            if ( ( pUpperFrame->IsColumnFrame() && pUpperFrame->IsInSct() ) || bIsFollowSection )
             {
                 break;
             }


More information about the Libreoffice-commits mailing list