summaryrefslogtreecommitdiff
path: root/sw/inc/IDocumentMarkAccess.hxx
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/inc/IDocumentMarkAccess.hxx
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/inc/IDocumentMarkAccess.hxx')
-rw-r--r--sw/inc/IDocumentMarkAccess.hxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/sw/inc/IDocumentMarkAccess.hxx b/sw/inc/IDocumentMarkAccess.hxx
index 1ad39701d02b..801ce98ba503 100644
--- a/sw/inc/IDocumentMarkAccess.hxx
+++ b/sw/inc/IDocumentMarkAccess.hxx
@@ -341,6 +341,9 @@ class IDocumentMarkAccess
virtual sal_Int32 getAnnotationMarksCount() const = 0;
virtual const_iterator_t findAnnotationMark( const OUString& rName ) const = 0;
virtual sw::mark::IMark* getAnnotationMarkFor(const SwPosition& rPosition) const = 0;
+ // restore text ranges of annotations of tracked deletions
+ // based on the helper bookmarks (which can survive I/O and hiding redlines)
+ virtual void restoreAnnotationMarks() = 0;
/** Finds the first mark that is starting after.
@returns