summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/inc/ndtxt.hxx4
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx45
-rw-r--r--sw/source/ui/wrtsh/wrtsh1.cxx11
3 files changed, 56 insertions, 4 deletions
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index d4d59afa3d9c..3cd195724670 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -484,6 +484,10 @@ public:
*/
BOOL GetFirstLineOfsWithNum( short& rFirstOffset ) const;
+ // --> OD 2010-01-05 #b6884103#
+ SwTwips GetAdditionalIndentForStartingNewList() const;
+ // <--
+
// --> OD 2008-12-02 #i96772#
void ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpaceItem ) const;
// <--
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index a779898d4aaa..81971372ee10 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -2889,6 +2889,51 @@ BOOL SwTxtNode::GetFirstLineOfsWithNum( short& rFLOffset ) const
return bRet;
}
+// --> OD 2010-01-05 #b6884103#
+SwTwips SwTxtNode::GetAdditionalIndentForStartingNewList() const
+{
+ SwTwips nAdditionalIndent = 0;
+
+ const SwNumRule* pRule = GetNum() ? GetNum()->GetNumRule() : 0L;
+ if ( pRule )
+ {
+ const SwNumFmt& rFmt = pRule->Get(static_cast<USHORT>(GetActualListLevel()));
+ if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
+ {
+ nAdditionalIndent = GetSwAttrSet().GetLRSpace().GetLeft();
+
+ if (getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING))
+ {
+ nAdditionalIndent = nAdditionalIndent -
+ GetSwAttrSet().GetLRSpace().GetTxtFirstLineOfst();
+ }
+ }
+ else if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
+ {
+ if ( AreListLevelIndentsApplicable() )
+ {
+ nAdditionalIndent = rFmt.GetIndentAt() + rFmt.GetFirstLineIndent();
+ }
+ else
+ {
+ nAdditionalIndent = GetSwAttrSet().GetLRSpace().GetLeft();
+ if (getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING))
+ {
+ nAdditionalIndent = nAdditionalIndent -
+ GetSwAttrSet().GetLRSpace().GetTxtFirstLineOfst();
+ }
+ }
+ }
+ }
+ else
+ {
+ nAdditionalIndent = GetSwAttrSet().GetLRSpace().GetLeft();
+ }
+
+ return nAdditionalIndent;
+}
+// <--
+
// --> OD 2008-12-02 #i96772#
void SwTxtNode::ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpaceItem ) const
{
diff --git a/sw/source/ui/wrtsh/wrtsh1.cxx b/sw/source/ui/wrtsh/wrtsh1.cxx
index 2b924933f1cc..7b0268cc57a2 100644
--- a/sw/source/ui/wrtsh/wrtsh1.cxx
+++ b/sw/source/ui/wrtsh/wrtsh1.cxx
@@ -1379,10 +1379,13 @@ void SwWrtShell::NumOrBulletOn(BOOL bNum)
if ( pTxtNode &&
ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
{
- short nTxtNodeFirstLineOffset( 0 );
- pTxtNode->GetFirstLineOfsWithNum( nTxtNodeFirstLineOffset );
- const SwTwips nTxtNodeIndent = pTxtNode->GetLeftMarginForTabCalculation() +
- nTxtNodeFirstLineOffset;
+ // --> OD 2010-01-05 #b6884103#
+// short nTxtNodeFirstLineOffset( 0 );
+// pTxtNode->GetFirstLineOfsWithNum( nTxtNodeFirstLineOffset );
+// const SwTwips nTxtNodeIndent = pTxtNode->GetLeftMarginForTabCalculation() +
+// nTxtNodeFirstLineOffset;
+ const SwTwips nTxtNodeIndent = pTxtNode->GetAdditionalIndentForStartingNewList();
+ // <--
if ( ( nTxtNodeIndent + nWidthOfTabs ) != 0 )
{
const SwTwips nIndentChange = nTxtNodeIndent + nWidthOfTabs;