editeng/source/editeng/impedit2.cxx | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)
New commits: commit 8409df4a29857acefb6e7d7d6f33e1011a65b070 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Thu Dec 9 13:09:56 2021 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Thu Dec 9 20:03:35 2021 +0100 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 <xiscofa...@libreoffice.org> diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index cbbfddff51c7..8f3fb3f34eaa 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); + } } } }