From 3fe9dfca2d44d9e41ee329883f199359c673f382 Mon Sep 17 00:00:00 2001 From: Mert Tumer Date: Wed, 26 Feb 2020 18:48:46 +0300 Subject: fix ToC links give unhelpful url popups core expects ctrl+click for internal links too and it should not expect it if it is tiled rendering Change-Id: Id841f0e9729e46f00988ea0b4eb29bd65098a740 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89559 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar --- sc/source/ui/view/gridwin.cxx | 10 +++++++--- sw/source/uibase/docvw/edtwin.cxx | 6 ++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index a5ca02b06aec..2a751f77ac99 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -2185,14 +2185,18 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt ) if ( GetEditUrl( rMEvt.GetPosPixel(), &aName, &aUrl, &aTarget ) ) { nMouseStatus = SC_GM_NONE; // Ignore double-click - + bool isTiledRendering = comphelper::LibreOfficeKit::isActive(); // ScGlobal::OpenURL() only understands Calc A1 style syntax. // Convert it to Calc A1 before calling OpenURL(). if (pDoc->GetAddressConvention() == formula::FormulaGrammar::CONV_OOO) { + if (aUrl.startsWith("#")) { + ScGlobal::OpenURL(aUrl, aTarget, isTiledRendering); + return; + } // in mobile view there is no ctrl+click and for hyperlink popup // the cell coordinates must be sent along with click position for elegance - if (comphelper::LibreOfficeKit::isActive() && + if (isTiledRendering && comphelper::LibreOfficeKit::isMobile(SfxLokHelper::getView())) { ScTabViewShell* pViewShell = pViewData->GetViewShell(); @@ -2243,7 +2247,7 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt ) aBuf.append('#'); OUString aUrlCalcA1(aTempAddr.Format(ScRefFlags::ADDR_ABS_3D, pDoc, formula::FormulaGrammar::CONV_OOO)); aBuf.append(aUrlCalcA1); - ScGlobal::OpenURL(aBuf.makeStringAndClear(), aTarget); + ScGlobal::OpenURL(aBuf.makeStringAndClear(), aTarget, isTiledRendering); } } diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index d48a5a4199c0..06d98b1c6dac 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -4650,6 +4650,12 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt) } else if ( IsAttrAtPos::InetAttr == aContentAtPos.eContentAtPos ) { + if (comphelper::LibreOfficeKit::isActive()) + { + OUString val((*static_cast(aContentAtPos.aFnd.pAttr)).GetValue()); + if (val.startsWith("#")) + bExecHyperlinks = true; + } if ( bExecHyperlinks && aContentAtPos.aFnd.pAttr ) rSh.ClickToINetAttr( *static_cast(aContentAtPos.aFnd.pAttr), nFilter ); } -- cgit v1.2.3