diff options
author | Justin Luth <jluth@mail.com> | 2023-11-06 16:22:26 -0500 |
---|---|---|
committer | Justin Luth <jluth@mail.com> | 2023-11-15 20:05:07 +0100 |
commit | ac0b3ff84522a388e0d44b09bf681af13a8288b2 (patch) | |
tree | 9a63854859e5dc31167323692968ef210f7901ea | |
parent | 0fc96d9b54e5a64c528bbf7fcdf9b71d74be8920 (diff) |
tdf#158031 editeng SID_REMOVE_HYPERLINK: use AlsoCheckBeforeCursor
This patch depends on prior patches for this bug report.
This is mostly just a clean-up patch to make it function like the others.
It was a lot like EDIT_HYPERLINK - because it selects the hyperlink first,
so it didn't need any fixing up.
However, there was one instance where KEYBOARD selection of
Remove Hyperlink in Draw could have been cancelled/slot-invalidated
if the mouse had been moved away from the field.
Change-Id: Id1b911f2548b8e2751ae34a2158ee4984dfc9a59
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159018
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
-rw-r--r-- | editeng/source/misc/urlfieldhelper.cxx | 3 | ||||
-rw-r--r-- | sc/source/ui/drawfunc/drtxtob.cxx | 1 | ||||
-rw-r--r-- | sd/source/ui/view/drviews2.cxx | 4 | ||||
-rw-r--r-- | sd/source/ui/view/drviewsf.cxx | 3 |
4 files changed, 4 insertions, 7 deletions
diff --git a/editeng/source/misc/urlfieldhelper.cxx b/editeng/source/misc/urlfieldhelper.cxx index 1ed8647a15ae..d60d7be92934 100644 --- a/editeng/source/misc/urlfieldhelper.cxx +++ b/editeng/source/misc/urlfieldhelper.cxx @@ -16,7 +16,8 @@ void URLFieldHelper::RemoveURLField(EditView& pEditView) { pEditView.SelectFieldAtCursor(); - const SvxFieldData* pField = pEditView.GetFieldAtCursor(); + const SvxFieldItem* pFieldItem = pEditView.GetFieldAtSelection(); + const SvxFieldData* pField = pFieldItem ? pFieldItem->GetField() : nullptr; if (auto pUrlField = dynamic_cast<const SvxURLField*>(pField)) { ESelection aSel = pEditView.GetSelection(); diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx index 1339e27bc4c1..863e97edc46b 100644 --- a/sc/source/ui/drawfunc/drtxtob.cxx +++ b/sc/source/ui/drawfunc/drtxtob.cxx @@ -327,7 +327,6 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq ) case SID_REMOVE_HYPERLINK: { - // Ensure the field is selected first URLFieldHelper::RemoveURLField(pOutView->GetEditView()); } break; diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index ae77f5593045..90cde7c792f5 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -1204,13 +1204,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) { if (mpDrawView->IsTextEdit()) { - // First make sure the field is selected OutlinerView* pOutView = mpDrawView->GetTextEditOutlinerView(); if (pOutView) - { - pOutView->SelectFieldAtCursor(); URLFieldHelper::RemoveURLField(pOutView->GetEditView()); - } } } Cancel(); diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx index 9246c2cd55ba..7a9d40bfc914 100644 --- a/sd/source/ui/view/drviewsf.cxx +++ b/sd/source/ui/view/drviewsf.cxx @@ -539,7 +539,8 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) case SID_REMOVE_HYPERLINK: { - if (!URLFieldHelper::IsCursorAtURLField(mpDrawView->GetTextEditOutlinerView())) + if (!URLFieldHelper::IsCursorAtURLField(mpDrawView->GetTextEditOutlinerView(), + /*AlsoCheckBeforeCursor=*/true)) rSet.DisableItem(nWhich); } break; |