Resolves: tdf#155716 grab focus when context menu is activated

Change-Id: I194aba413d5adf07c8d78823f2f9a086f95cf248
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154923
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index a85baa1c..2fdd83fd 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -1648,7 +1648,7 @@ bool ScTextWnd::CanFocus() const
    return SC_MOD()->IsEditMode();
}

bool ScTextWnd::MouseButtonDown( const MouseEvent& rMEvt )
void ScTextWnd::UpdateFocus()
{
    if (!HasFocus())
    {
@@ -1656,6 +1656,11 @@ bool ScTextWnd::MouseButtonDown( const MouseEvent& rMEvt )
        if (CanFocus())
            TextGrabFocus();
    }
}

bool ScTextWnd::MouseButtonDown( const MouseEvent& rMEvt )
{
    UpdateFocus();

    bool bClickOnSelection = false;
    if (m_xEditView)
@@ -1771,6 +1776,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 500ab23..7d058af 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;