summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <michael.stahl@allotropia.de>2022-09-23 18:11:56 +0200
committerCaolán McNamara <caolanm@redhat.com>2022-09-23 21:38:58 +0200
commit88c41829ab99af4fb8c5e5494508c763330fef53 (patch)
tree19a648e1e4d38bd636496a8cbfd75b8de50166ea
parenta0a529a131c61588cf865143d47cdc23961fd596 (diff)
rhbz#2122948 sw: fix ODF import of fieldmark in redline
The problem is that SwXText::compareRegionStarts() calls SwXText::CreateCursor() which creates a cursor on the last node in the body text, but it's actually a redline. Override SwXRedlineText::CreateCursor() to create a cursor in the redline text. Complete mystery why SwXText has 2 virtual functions to create cursors in the first place. (regression from commit 463178fef5c22f1a04d10e54491852d56e2038b0) Change-Id: I0f3bcf4eda25f1ac7e1c1b0cf47a920f8302d2b7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140523 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sw/inc/unoredline.hxx3
-rw-r--r--sw/source/core/unocore/unoredline.cxx5
2 files changed, 8 insertions, 0 deletions
diff --git a/sw/inc/unoredline.hxx b/sw/inc/unoredline.hxx
index a73ede766af6..3a7273a199d7 100644
--- a/sw/inc/unoredline.hxx
+++ b/sw/inc/unoredline.hxx
@@ -39,6 +39,9 @@ class SwXRedlineText final :
SwNodeIndex m_aNodeIndex;
virtual const SwStartNode *GetStartNode() const override;
+ virtual css::uno::Reference< css::text::XTextCursor >
+ CreateCursor() override;
+
public:
SwXRedlineText(SwDoc* pDoc, const SwNodeIndex& aNodeIndex);
diff --git a/sw/source/core/unocore/unoredline.cxx b/sw/source/core/unocore/unoredline.cxx
index adc61e5700ce..6772bb1e1305 100644
--- a/sw/source/core/unocore/unoredline.cxx
+++ b/sw/source/core/unocore/unoredline.cxx
@@ -90,6 +90,11 @@ uno::Sequence<sal_Int8> SwXRedlineText::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
+uno::Reference<text::XTextCursor> SwXRedlineText::CreateCursor()
+{
+ return createTextCursor();
+}
+
uno::Reference<text::XTextCursor> SwXRedlineText::createTextCursor()
{
SolarMutexGuard aGuard;