summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-02-14 23:34:16 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-02-18 10:09:35 +0000
commit00967d738e02155d793830e23e5c33696f3a759a (patch)
treef805b0af89965432159519b842d26841241217a8 /sw
parent2b08767693604e43023dda30734ab1ff5921048c (diff)
SwDoc::Overwrite: probably a bad idea to overwrite fieldmarks
Change-Id: Iba94df67c21514cf4f5361bab28629c6d5d9d3e8 (cherry picked from commit 447bb5b5006051672ec526b75bec7db02d2db82e) Reviewed-on: https://gerrit.libreoffice.org/2175 Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com> Tested-by: Miklos Vajna <vmiklos@suse.cz>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/doc/docedt.cxx14
1 files changed, 12 insertions, 2 deletions
diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx
index 693e2bf1aa7d..47829ea68ae0 100644
--- a/sw/source/core/doc/docedt.cxx
+++ b/sw/source/core/doc/docedt.cxx
@@ -159,8 +159,18 @@ typedef boost::ptr_vector< _SaveRedline > _SaveRedlines;
static bool lcl_MayOverwrite( const SwTxtNode *pNode, const xub_StrLen nPos )
{
sal_Unicode cChr = pNode->GetTxt().GetChar( nPos );
- return !( ( CH_TXTATR_BREAKWORD == cChr || CH_TXTATR_INWORD == cChr ) &&
- (0 != pNode->GetTxtAttrForCharAt( nPos ) ) );
+ switch (cChr)
+ {
+ case CH_TXTATR_BREAKWORD:
+ case CH_TXTATR_INWORD:
+ return !pNode->GetTxtAttrForCharAt(nPos);// how could there be none?
+ case CH_TXT_ATR_FIELDSTART:
+ case CH_TXT_ATR_FIELDEND:
+ case CH_TXT_ATR_FORMELEMENT:
+ return false;
+ default:
+ return true;
+ }
}
static void lcl_SkipAttr( const SwTxtNode *pNode, SwIndex &rIdx, xub_StrLen &rStart )