summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorVinaya Mandke <vinaya.mandke@synerzip.com>2014-07-25 15:05:50 +0530
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-08-01 10:00:00 +0000
commit9a733398516b7ee08ad5b3887c75f11f0f6bbc27 (patch)
tree8ef034afc19600ab0b6dd3a480e73ebb2ecbf505 /sw
parentbac3cdb1b8afd2fa8fdfea99d1d01dc2770d1ef1 (diff)
fdo#81491 FILEOPEN DOCX Assert Fails while Deleting Para (FramePr)
SwXText::convertToTextFrame is called for a Para with FramePr. convertToTextFrame in turn calls DelFullPara which throws an assert as a few Bookmarks are still registered to the paragraph. In MarkManager::correctMarksAbsolute, pMark->GetMarkPos().nNode.GetNode() is checked if it is pOldNode, and then the Mark Position is shifted to aNewPos. In the following condition pMark->GetOtherMarkPos().nNode.GetNode() if it is the pOldNode, and still the Mark Position is changed. However the Other Mark Position must be changed as now the Othe Mark is in pOldNode. Change-Id: I4507f6b2906d33bc65c922fffe12db2110de651b Reviewed-on: https://gerrit.libreoffice.org/10536 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/core/data/ooxml/pass/fdo81491.docxbin0 -> 13756 bytes
-rw-r--r--sw/source/core/doc/docbm.cxx3
2 files changed, 2 insertions, 1 deletions
diff --git a/sw/qa/core/data/ooxml/pass/fdo81491.docx b/sw/qa/core/data/ooxml/pass/fdo81491.docx
new file mode 100644
index 000000000000..0da621514dff
--- /dev/null
+++ b/sw/qa/core/data/ooxml/pass/fdo81491.docx
Binary files differ
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index db2358c76c6f..233637c34d88 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -584,7 +584,8 @@ namespace sw { namespace mark
if (pMark->IsExpanded() &&
&pMark->GetOtherMarkPos().nNode.GetNode() == pOldNode)
{
- pMark->SetMarkPos(aNewPos);
+ // shift the OtherMark to aNewPos
+ pMark->SetOtherMarkPos(aNewPos);
bChangedOPos= true;
}
// illegal selection? collapse the mark and restore sorting later