sc/source/ui/app/inputwin.cxx |    8 +++++++-
 sc/source/ui/inc/inputwin.hxx |    2 ++
 2 files changed, 9 insertions(+), 1 deletion(-)

New commits:
commit 7dc697addd0895b8aee0c051c0d4d4125414f012
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Jul 26 09:29:18 2023 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Wed Jul 26 12:26:30 2023 +0200

    Resolves: tdf#155716 grab focus when context menu is activated
    
    Change-Id: I194aba413d5adf07c8d78823f2f9a086f95cf248
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154933
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 2c46b93db54d..70dee0e453fd 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -1685,7 +1685,7 @@ bool ScTextWnd::CanFocus() const
     return SC_MOD()->IsEditMode();
 }
 
-bool ScTextWnd::MouseButtonDown( const MouseEvent& rMEvt )
+void ScTextWnd::UpdateFocus()
 {
     if (!HasFocus())
     {
@@ -1693,6 +1693,11 @@ bool ScTextWnd::MouseButtonDown( const MouseEvent& rMEvt 
)
         if (CanFocus())
             TextGrabFocus();
     }
+}
+
+bool ScTextWnd::MouseButtonDown( const MouseEvent& rMEvt )
+{
+    UpdateFocus();
 
     bool bClickOnSelection = false;
     if (m_xEditView)
@@ -1808,6 +1813,7 @@ bool ScTextWnd::Command( const CommandEvent& rCEvt )
                 }
                 if (IsMouseCaptured())
                     ReleaseMouse();
+                UpdateFocus();
                 pViewFrm->GetDispatcher()->ExecutePopup("formulabar", 
&mrGroupBar.GetVclParent(), &aPos);
             }
         }
diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
index 500ab23eb790..7d058af9da0a 100644
--- a/sc/source/ui/inc/inputwin.hxx
+++ b/sc/source/ui/inc/inputwin.hxx
@@ -135,6 +135,8 @@ private:
 
     void InitEditEngine();
 
+    void UpdateFocus();
+
     rtl::Reference<svt::OStringTransferable> m_xHelper;
 
     typedef ::std::vector< ScAccessibleEditLineTextData* > AccTextDataVector;

Reply via email to