sw/qa/core/text/data/floattable-anchor-left-margin.docx |binary sw/qa/core/text/itrform2.cxx | 23 ++++++++++++++++ 2 files changed, 23 insertions(+)
New commits: commit 65f508b44ecbc20c8bd5172d1656639f686730ff Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Thu Oct 19 13:44:24 2023 +0200 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Thu Oct 19 18:36:52 2023 +0200 tdf#157573 sw floattable: add missing testcase Fails with commit 626fe9ab5ebebc4ef36e35f4aa597c03a3564d22 (tdf#157573 sw floattable: fix incorrect lack of left margin after table, 2023-10-18) reverted. Change-Id: I6a3bd69dc109e6df195d00c33118218eeaa00ce5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158179 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sw/qa/core/text/data/floattable-anchor-left-margin.docx b/sw/qa/core/text/data/floattable-anchor-left-margin.docx new file mode 100644 index 000000000000..aa55a0ce3001 Binary files /dev/null and b/sw/qa/core/text/data/floattable-anchor-left-margin.docx differ diff --git a/sw/qa/core/text/itrform2.cxx b/sw/qa/core/text/itrform2.cxx index 0705069b3038..02cd813ae549 100644 --- a/sw/qa/core/text/itrform2.cxx +++ b/sw/qa/core/text/itrform2.cxx @@ -15,6 +15,7 @@ #include <rootfrm.hxx> #include <sortedobjs.hxx> #include <pagefrm.hxx> +#include <cntfrm.hxx> namespace { @@ -143,6 +144,28 @@ CPPUNIT_TEST_FIXTURE(Test, testContentControlHeaderPDFExport) // i.e. not all of header, heading and body text was there on page 2, content was lost. CPPUNIT_ASSERT_EQUAL(3, nTextCount); } + +CPPUNIT_TEST_FIXTURE(Test, testSplitFlyAnchorLeftMargin) +{ + // Given a document with a floating table, anchor para is followed by an other para with a left + // margin: + createSwDoc("floattable-anchor-left-margin.docx"); + + // When laying out that document: + calcLayout(); + + // Then make sure that the left margin of this last paragraph is not lost: + SwDoc* pDoc = getSwDoc(); + SwRootFrame* pLayout = pDoc->getIDocumentLayoutAccess().GetCurrentLayout(); + auto pPage = dynamic_cast<SwPageFrame*>(pLayout->Lower()); + CPPUNIT_ASSERT(pPage); + SwContentFrame* pLastPara = pPage->FindLastBodyContent(); + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 6480 + // - Actual : 0 + // i.e. the left margin was lost. + CPPUNIT_ASSERT_EQUAL(static_cast<SwTwips>(6480), pLastPara->getFramePrintArea().Left()); +} } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */