sc: avoid dynamic_cast when possible
After b9362e87a3646a6693b81fb0d40e28ce7813a251
< tdf#145671 Don't open URL twice in cell edit mode >
Change-Id: I7b5b00aa48092666640927d268bc9d5bde0d24e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126586
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index cbbfddf..8f3fb3f 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -612,22 +612,24 @@ bool ImpEditEngine::MouseButtonUp( const MouseEvent& rMEvt, EditView* pView )
if (const SvxFieldItem* pFld = pView->GetField(aLogicClick))
{
bool bUrlOpened = GetEditEnginePtr()->FieldClicked( *pFld );
auto pUrlField = dynamic_cast<const SvxURLField*>(pFld->GetField());
// tdf#121039 When in edit mode, editeng is responsible for opening the URL on mouse click
if (!bUrlOpened && pUrlField)
if (!bUrlOpened)
{
bool bCtrlClickHappened = rMEvt.IsMod1();
bool bCtrlClickSecOption
= SvtSecurityOptions::IsOptionSet(SvtSecurityOptions::EOption::CtrlClickHyperlink);
if ((bCtrlClickHappened && bCtrlClickSecOption)
|| (!bCtrlClickHappened && !bCtrlClickSecOption))
if (auto pUrlField = dynamic_cast<const SvxURLField*>(pFld->GetField()))
{
css::uno::Reference<css::system::XSystemShellExecute> exec(
css::system::SystemShellExecute::create(
comphelper::getProcessComponentContext()));
exec->execute(pUrlField->GetURL(), OUString(),
css::system::SystemShellExecuteFlags::DEFAULTS);
bool bCtrlClickHappened = rMEvt.IsMod1();
bool bCtrlClickSecOption
= SvtSecurityOptions::IsOptionSet(SvtSecurityOptions::EOption::CtrlClickHyperlink);
if ((bCtrlClickHappened && bCtrlClickSecOption)
|| (!bCtrlClickHappened && !bCtrlClickSecOption))
{
css::uno::Reference<css::system::XSystemShellExecute> exec(
css::system::SystemShellExecute::create(
comphelper::getProcessComponentContext()));
exec->execute(pUrlField->GetURL(), OUString(),
css::system::SystemShellExecuteFlags::DEFAULTS);
}
}
}
}