summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Luth <jluth@mail.com>2023-11-06 16:22:26 -0500
committerJustin Luth <jluth@mail.com>2023-11-15 20:05:07 +0100
commitac0b3ff84522a388e0d44b09bf681af13a8288b2 (patch)
tree9a63854859e5dc31167323692968ef210f7901ea
parent0fc96d9b54e5a64c528bbf7fcdf9b71d74be8920 (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.cxx3
-rw-r--r--sc/source/ui/drawfunc/drtxtob.cxx1
-rw-r--r--sd/source/ui/view/drviews2.cxx4
-rw-r--r--sd/source/ui/view/drviewsf.cxx3
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;