summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-07-13 15:54:23 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-07-13 21:10:14 +0200
commit4908d6d6742e2f0700ea4ccd9d636d91ea281046 (patch)
treee1770b2498334c553ee72e0ce069547c02dac889
parent9672a9293d0367c4a326a2628e35f7a56702779b (diff)
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
-rw-r--r--sw/source/core/layout/flowfrm.cxx5
1 files changed, 4 insertions, 1 deletions
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;
}