sw/qa/extras/uiwriter/data2/tdf123102.odt |binary
 sw/qa/extras/uiwriter/uiwriter2.cxx       |   10 ++++++++++
 sw/source/core/table/swnewtable.cxx       |   15 +++++++++++++++
 3 files changed, 25 insertions(+)

New commits:
commit 3a69e1a6b8eab79c55b6e8f3edd2ee2da45b39c0
Author:     László Németh <nem...@numbertext.org>
AuthorDate: Wed Feb 26 10:18:32 2020 +0100
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Wed Feb 26 16:53:30 2020 +0100

    tdf#123102 Writer: fix numbering at row insertion
    
    in vertically merged cells. Hidden paragraph of
    the new merged cell inherited numbering of the
    previous row, resulting bad numbering of the next
    list item.
    
    Change-Id: Ib6b29947caa22747ba8c79725ab6f9ef4db31319
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89537
    Tested-by: Jenkins
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/sw/qa/extras/uiwriter/data2/tdf123102.odt 
b/sw/qa/extras/uiwriter/data2/tdf123102.odt
new file mode 100644
index 000000000000..731a9b1521c1
Binary files /dev/null and b/sw/qa/extras/uiwriter/data2/tdf123102.odt differ
diff --git a/sw/qa/extras/uiwriter/uiwriter2.cxx 
b/sw/qa/extras/uiwriter/uiwriter2.cxx
index 80e6019d7a79..4a9898fc31d1 100644
--- a/sw/qa/extras/uiwriter/uiwriter2.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter2.cxx
@@ -934,6 +934,16 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf105413)
                          getProperty<OUString>(getParagraph(1), 
"ParaStyleName"));
 }
 
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf123102)
+{
+    createDoc("tdf123102.odt");
+    // insert a new row after a vertically merged cell
+    dispatchCommand(mxComponent, ".uno:InsertRowsAfter", {});
+    xmlDocPtr pXmlDoc = parseLayoutDump();
+    // This was "3." - caused by the hidden numbered paragraph of the new 
merged cell
+    assertXPath(pXmlDoc, "/root/page/body/tab/row[6]/cell[1]/txt/Special", 
"rText", "2.");
+}
+
 CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testUnfloatButtonSmallTable)
 {
     // The floating table in the test document is too small, so we don't 
provide an unfloat button
diff --git a/sw/source/core/table/swnewtable.cxx 
b/sw/source/core/table/swnewtable.cxx
index fb5f7cb5b9a3..d1e724936d11 100644
--- a/sw/source/core/table/swnewtable.cxx
+++ b/sw/source/core/table/swnewtable.cxx
@@ -1517,7 +1517,22 @@ bool SwTable::InsertRow( SwDoc* pDoc, const SwSelBoxes& 
rBoxes,
                         if( nRowSpan == 1 || nRowSpan == -1 )
                             nRowSpan = n + 1;
                         else if( nRowSpan > 1 )
+                        {
                             nRowSpan = - nRowSpan;
+
+                            // tdf#123102 disable numbering of the new hidden
+                            // paragraph in merged cells to avoid of bad
+                            // renumbering of next list elements
+                            SwTableBox* pBox = 
pNewLine->GetTabBoxes()[nCurrBox];
+                            SwNodeIndex aIdx( *pBox->GetSttNd(), +1 );
+                            SwContentNode* pCNd = 
aIdx.GetNode().GetContentNode();
+                            if( pCNd && pCNd->IsTextNode() && 
pCNd->GetTextNode()->GetNumRule() )
+                            {
+                                SwPosition aPos( *pCNd->GetTextNode() );
+                                SwPaM aPam( aPos, aPos );
+                                pDoc->DelNumRules( aPam );
+                            }
+                        }
                     }
                     else
                     {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to