From 5c37d06aeec3cdfb1bdcc94d957a84c514b845b2 Mon Sep 17 00:00:00 2001 From: Justin Luth Date: Thu, 26 Feb 2026 13:25:01 -0500 Subject: [PATCH] tdf#171025 docx export: don't lose pageAfter break in ParaProps DOCX PrepareNewSectionBreak passes the CurrentSectionInfo to SectionBreak, so it always followed the pSectionInfo path. However, the options in that path do not work when StartParagraphProperties is the context. So, if there is a PageAfter break as one of the paragraph properties, and since StartParagraphProperties happens just before EndParagraph (i.e. all the pargraph runs have already been written) then the request to SvxBreak::PageAfter can be written as the last run in the paragraph - right before . That is accomplished with m_bPageBreakAfter. make CppunitTest_sw_ooxmlexport25 \ CPPUNIT_TEST_NAME=testTdf171025_pageAfter The only unit test this patch matched was make CppunitTest_sw_ooxmlexport15 \ CPPUNIT_TEST_NAME=testTdf136952_pgBreak3B and it simply adds an explicit page break just connected before the sectPr - common enough in DOCX. Change-Id: I718bf6d3cf240fd4ab1140c02194ea11d3767b74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200539 Tested-by: Jenkins Reviewed-by: Justin Luth --- .../ooxmlexport/data/tdf171025_pageAfter.docx | Bin 0 -> 10768 bytes sw/qa/extras/ooxmlexport/ooxmlexport25.cxx | 7 +++++++ sw/source/filter/ww8/docxattributeoutput.cxx | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 sw/qa/extras/ooxmlexport/data/tdf171025_pageAfter.docx diff --git a/sw/qa/extras/ooxmlexport/data/tdf171025_pageAfter.docx b/sw/qa/extras/ooxmlexport/data/tdf171025_pageAfter.docx new file mode 100644 index 0000000000000000000000000000000000000000..ff6a768000a179566e03ad8eb565491be3a8c77e GIT binary patch literal 10768 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