sw/qa/extras/rtfexport/data/tdf158586_pageBreak0B.rtf |   15 +++++++++++++++
 sw/qa/extras/rtfexport/rtfexport8.cxx                 |    6 ++++++
 writerfilter/source/rtftok/rtfdocumentimpl.cxx        |    2 ++
 3 files changed, 23 insertions(+)

New commits:
commit 940b60c903b11340979eaf37b9b1dad5d823a1c4
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Wed Dec 13 20:07:20 2023 -0500
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Tue Dec 19 08:59:10 2023 +0100

    partial revert tdf#153178 writerfilter: do not create text frame spuriously
    
    If HoriAnchor/VertAnchor are assigned, that is enough to create a frame.
    
    make CppunitTest_sw_rtfexport8 CPPUNIT_TEST_NAME=testTdf158586_0B
    
    Note: because of a regression, this was already one page before
    this commit, so need to go back to the time of the reverted patch.
    
    Change-Id: Iddbe1cc4ba6d6e95e2d977a227ae6cab5271007e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160743
    Reviewed-by: Justin Luth <jl...@mail.com>
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/sw/qa/extras/rtfexport/data/tdf158586_pageBreak0B.rtf 
b/sw/qa/extras/rtfexport/data/tdf158586_pageBreak0B.rtf
new file mode 100644
index 000000000000..587e90500505
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/tdf158586_pageBreak0B.rtf
@@ -0,0 +1,15 @@
+{\rtf1
+
+\paperw8419\paperh5953
+
+\spltpgpar
+
+\ltrpar \sectd
+
+\pard\plain \phpg\pvpg
+
+\page \sect \sectd \sbknone
+
+\pard\plain First page
+\par
+}
diff --git a/sw/qa/extras/rtfexport/rtfexport8.cxx 
b/sw/qa/extras/rtfexport/rtfexport8.cxx
index 80309ff9b65e..bcba0a9beb97 100644
--- a/sw/qa/extras/rtfexport/rtfexport8.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport8.cxx
@@ -56,6 +56,12 @@ DECLARE_RTFEXPORT_TEST(testTdf158586_0, 
"tdf158586_pageBreak0.rtf")
     // assertXPathContent(pLayout, "//page[1]/body/txt"_ostr, "First page");}
 }
 
+DECLARE_RTFEXPORT_TEST(testTdf158586_0B, "tdf158586_pageBreak0B.rtf")
+{
+    // The specified page break must be lost because it is in a text frame
+    CPPUNIT_ASSERT_EQUAL(1, getPages());
+}
+
 DECLARE_RTFEXPORT_TEST(testTdf158586_1, "tdf158586_pageBreak1.rtf")
 {
     // None of the specified text frame settings initiates a real text frame - 
page break not lost
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 1a4f33f28df8..0abbccaed0e3 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -4010,6 +4010,8 @@ bool RTFFrame::hasProperties() const
 {
     // tdf#153178 \dxfrtext \dfrmtxtx \dfrmtxty \wrapdefault do *not* create 
frame
     return m_nX != 0 || m_nY != 0 || m_nW != 0 || m_nH != 0
+           || (m_nHoriAnchor && m_nHoriAnchor != 
NS_ooxml::LN_Value_doc_ST_HAnchor_text)
+           || (m_nVertAnchor && m_nVertAnchor != 
NS_ooxml::LN_Value_doc_ST_VAnchor_margin)
            || (m_oWrap && *m_oWrap != NS_ooxml::LN_Value_doc_ST_Wrap_auto);
 }
 

Reply via email to