summaryrefslogtreecommitdiff
path: root/sw/source/filter/xml/wrtxml.cxx
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2021-02-24 15:05:38 +0100
committerLászló Németh <nemeth@numbertext.org>2021-02-25 08:42:13 +0100
commitd325cd0c69b7c0cc4f47105749a98995de81cc9d (patch)
tree3932106b70b3c700d38f2ba0c447e98419f5eda1 /sw/source/filter/xml/wrtxml.cxx
parentb5422296c55b3fe7b1f96920263feb9c2f97f51d (diff)
tdf#115815 sw: fix lost annotation ranges of redlines
Annotations of tracked deletions lost their ranges during ODF export, according to the limitation of ODF or its recent implementation. As a workaround, save and restore the start of the annotation ranges using temporary bookmarks (which can be part of text:deletion). Note: maybe it's possible to split redline ranges regarding to the start of the annotation ranges, mixing tracked deletions with normal text or tracked insertions, but this would be a not backward compatible solution, because the ODF import of this file inserts extra (not tracked) spaces around the annotation, losing the original text content. Change-Id: I786993a05ee1683076e213374a92969d1856cf8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111489 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw/source/filter/xml/wrtxml.cxx')
-rw-r--r--sw/source/filter/xml/wrtxml.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/sw/source/filter/xml/wrtxml.cxx b/sw/source/filter/xml/wrtxml.cxx
index 71445d932f4e..4ae5964a7d2e 100644
--- a/sw/source/filter/xml/wrtxml.cxx
+++ b/sw/source/filter/xml/wrtxml.cxx
@@ -45,6 +45,7 @@
#include <doc.hxx>
#include <docfunc.hxx>
#include <IDocumentRedlineAccess.hxx>
+#include <IDocumentMarkAccess.hxx>
#include <IDocumentStatistics.hxx>
#include <IDocumentLayoutAccess.hxx>
#include <rootfrm.hxx>
@@ -409,6 +410,9 @@ ErrCode SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& xS
nRedlineFlags |= nOrigRedlineFlags & RedlineFlags::ShowMask;
m_pDoc->getIDocumentRedlineAccess().SetRedlineFlags( nRedlineFlags );
+ // tdf#115815 restore annotation ranges collapsed by hide redlines
+ m_pDoc->getIDocumentMarkAccess()->restoreAnnotationMarks();
+
if (xStatusIndicator.is())
{
xStatusIndicator->end();