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);
+                        }
                     }
                 }
             }

Reply via email to