[Libreoffice] [PATCH] sw: reset num level on SplitNode if parent is outline.

Octavio Alvarez alvarezp at alvarezp.ods.org
Tue Dec 14 21:59:37 PST 2010


Fixes the following scenario:
1. Create a paragraph style "S" bound to a list style.
2. Set the Heading 2 next style to "S".
3. Pressing ENTER at the end of a Heading 2 will create the new
   paragraph, but its numbering level will be set to 2.

If this test is repeated for "Heading 3", the resulting paragraph
will end up with numbering level == 3.
---
 sw/source/core/txtnode/ndtxt.cxx |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 62caad9..5fbea95 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -365,6 +365,8 @@ void lcl_ChangeFtnRef( SwTxtNode &rNode )
 
 SwCntntNode *SwTxtNode::SplitCntntNode( const SwPosition &rPos )
 {
+    bool parentIsOutline = IsOutline();
+
     // lege den Node "vor" mir an
     const xub_StrLen nSplitPos = rPos.nContent.GetIndex();
     const xub_StrLen nTxtLen = m_Text.Len();
@@ -386,7 +388,7 @@ SwCntntNode *SwTxtNode::SplitCntntNode( const SwPosition &rPos )
     ResetAttr( RES_PARATR_LIST_ISRESTART );
     ResetAttr( RES_PARATR_LIST_RESTARTVALUE );
     ResetAttr( RES_PARATR_LIST_ISCOUNTED );
-    if ( GetNumRule() == 0 )
+    if ( GetNumRule() == 0 || (parentIsOutline && !IsOutline()) )
     {
         ResetAttr( RES_PARATR_LIST_ID );
         ResetAttr( RES_PARATR_LIST_LEVEL );
-- 
1.7.2.3



More information about the LibreOffice mailing list