summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-08-18 17:25:17 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2017-08-22 19:57:39 +0200
commit3ddc16fc26a06a95b7e373ee930881f91b22ad1f (patch)
treeeb4c3443bb721c3b693d26b2389d6cea607264b3 /sw
parent5d3d8958898bae177dfa38a31ce28497e5dd7a95 (diff)
tdf#99692 sw: fix the fix: don't set bNullContent if node was split
When showing the redlines in rhbz908615-13.odt, the following assertion happens: Assertion `IDocumentMarkAccess::IsLegalPaMForCrossRefHeadingBookmark(rPaM) && "<CrossRefBookmark::CrossRefBookmark(..)>" "- creation of cross-reference bookmark with an illegal PaM that does not expand over exactly one whole paragraph."' failed. This is because in DocumentContentOperationsManager::MoveRange() the flag bNullContent is set after the node has been split; in this case the nContent is of course always 0. Later the function then restores aSavePam to the index 0 of the next node, when it actually shouldn't do anything because the JoinNext() already positioned it correctly at the merge-index of the re-joined node. (regression from 850795942b3e168cab8ce88b4f2b421945ff29ca) Change-Id: I64d50e70b19e2fd81537a9771fa8706898b17642 (cherry picked from commit 6a018363791945b6fd7f04f2aa311e4f4753f6aa) Reviewed-on: https://gerrit.libreoffice.org/41305 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/doc/DocumentContentOperationsManager.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index d6e014e474ec..4150718228fb 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -2031,7 +2031,8 @@ bool DocumentContentOperationsManager::MoveRange( SwPaM& rPaM, SwPosition& rPos,
// the manipulated range.
// tdf#99692 don't Move() back if that would end up in another node
// because moving backward is not necessarily the inverse of forward then.
- const bool bNullContent = aSavePam.GetPoint()->nContent == 0;
+ // (but do Move() back if we have split the node)
+ const bool bNullContent = !bSplit && aSavePam.GetPoint()->nContent == 0;
if( bNullContent )
{
aSavePam.GetPoint()->nNode--;