diff options
Diffstat (limited to 'sw/source/core')
-rw-r--r-- | sw/source/core/layout/tabfrm.cxx | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx index 47a81b870125..bedce3a3f588 100644 --- a/sw/source/core/layout/tabfrm.cxx +++ b/sw/source/core/layout/tabfrm.cxx @@ -1091,7 +1091,21 @@ bool SwTabFrame::Split( const SwTwips nCutPos, bool bTryToSplit, bool bTableRowK m_pTable->SetRowsToRepeat(0); return false; } - else if ( !GetIndPrev() && nRepeat == nRowCount ) + + // Minimum row height has the same force as "do not split row" (as long as it fits on one page) + if ( bSplitRowAllowed && bTryToSplit && !pRow->IsRowSpanLine() ) + { + const SwFormatFrameSize &rSz = pRow->GetFormat()->GetFrameSize(); + const sal_Int32 nMinHeight = rSz.GetHeightSizeType() == SwFrameSize::Minimum ? rSz.GetHeight() : 0; + if ( nMinHeight > nRemainingSpaceForLastRow ) + { + // TODO: what if we are not in a page, but a column or something that is not page-sized. + const sal_Int32 nFullPageHeight = FindPageFrame()->getFramePrintArea().Height(); + bSplitRowAllowed = nMinHeight > nFullPageHeight; + } + } + + if ( !GetIndPrev() && nRepeat == nRowCount ) { // Second case: The first non-headline row does not fit to the page. // If it is not allowed to be split, or it contains a sub-row that |