Revert "tdf#105478 sw layout: treat minHeight as "do not split row""
This reverts LO7.0 commit aa5dc0b48cd4db6883c9b52c68b16170c9c81d1f,
in order to prevent regressions like tdf#133441.
Change-Id: Id08f5277621703e1577fc9db917841b8b7c0bda5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95180
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
diff --git a/sw/qa/extras/layout/data/tdf105478_rowMinHeight.odt b/sw/qa/extras/layout/data/tdf105478_rowMinHeight.odt
deleted file mode 100644
index 3a7fd60..0000000
--- a/sw/qa/extras/layout/data/tdf105478_rowMinHeight.odt
+++ /dev/null
Binary files differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index b896df2..96c6edc 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -2841,15 +2841,6 @@
assertXPath(pXmlDoc, sXPath, 0);
}
CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf105478)
{
createDoc("tdf105478_rowMinHeight.odt");
xmlDocUniquePtr pXmlDoc = parseLayoutDump();
// Minimum row height forces the cell (with table header as row 1) to start on page 2, not page 1.
assertXPathContent(pXmlDoc, "/root/page[2]/body/tab/row[2]/cell/txt[1]", "Cell 1");
}
CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf116848)
{
SwDoc* pDoc = createDoc("tdf116848.odt");
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index b037611..f4aed1e 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -1091,21 +1091,7 @@
m_pTable->SetRowsToRepeat(0);
return false;
}
// 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 )
else 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