summaryrefslogtreecommitdiff
path: root/sw/source/core/layout/tabfrm.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/layout/tabfrm.cxx')
-rw-r--r--sw/source/core/layout/tabfrm.cxx16
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