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 <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
(cherry picked from commit 3fe9dfca2d44d9e41ee329883f199359c673f382)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89919
Tested-by: Jenkins
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 5ca54ba..d690b59 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -2202,14 +2202,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();
@@ -2260,7 +2264,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 a1e1a6f..d60b347 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<const SwFormatINetFormat*>(aContentAtPos.aFnd.pAttr)).GetValue());
if (val.startsWith("#"))
bExecHyperlinks = true;
}
if ( bExecHyperlinks && aContentAtPos.aFnd.pAttr )
rSh.ClickToINetAttr( *static_cast<const SwFormatINetFormat*>(aContentAtPos.aFnd.pAttr), nFilter );
}