tdf#152483 Fix the insert hyperlink behaviour on Calc
Cursor invalidation message shouldn't carry a hyperlink info to online
side if there is no hyperlink under the cursor
Change-Id: Ibdb6e32d029e101212d03bc117a5a14a712822ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143986
Tested-by: Jenkins
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx
index 1a425cb..1223d71 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -22,6 +22,7 @@
#include <editeng/editeng.hxx>
#include <editeng/editview.hxx>
#include <editeng/outliner.hxx>
#include <editeng/urlfieldhelper.hxx>
#include <tools/poly.hxx>
#include <editeng/unolingu.hxx>
#include <com/sun/star/linguistic2/XDictionary.hpp>
@@ -1415,19 +1416,17 @@ void ImpEditView::ShowCursor( bool bGotoCursor, bool bForceVisCursor )
// is cursor at a misspelled word ?
Reference< linguistic2::XSpellChecker1 > xSpeller( pEditEngine->pImpEditEngine->GetSpeller() );
bool bIsWrong = xSpeller.is() && IsWrongSpelledWord(aPaM, /*bMarkIfWrong*/ false);
EditView* pActiveView = GetEditViewPtr();
boost::property_tree::ptree aHyperlinkTree;
if (const SvxFieldItem* pFld = GetField(aPos, nullptr, nullptr))
if (URLFieldHelper::IsCursorAtURLField(*pActiveView))
{
if (auto pUrlField = dynamic_cast<const SvxURLField*>(pFld->GetField()))
{
aHyperlinkTree = getHyperlinkPropTree(pUrlField->GetRepresentation(), pUrlField->GetURL());
}
if (const SvxFieldItem* pFld = GetField(aPos, nullptr, nullptr))
if (auto pUrlField = dynamic_cast<const SvxURLField*>(pFld->GetField()))
aHyperlinkTree = getHyperlinkPropTree(pUrlField->GetRepresentation(), pUrlField->GetURL());
}
else if (GetEditSelection().HasRange())
{
EditView* pActiveView = GetEditViewPtr();
if (pActiveView)
{
const SvxFieldItem* pFieldItem = pActiveView->GetFieldAtSelection();