sw/inc/unoredline.hxx | 3 +++ sw/source/core/unocore/unoredline.cxx | 5 +++++ 2 files changed, 8 insertions(+)
New commits: commit c80a3ef9f434230ae3d5ffec902edc19f34f75f7 Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Fri Sep 23 18:11:56 2022 +0200 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sun Sep 25 17:05:28 2022 +0200 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/+/140504 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> 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 197a5542b072..942243e0cd0f 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;