[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - 2 commits - sc/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Nov 19 10:29:51 UTC 2019


 sc/source/ui/app/inputhdl.cxx |   11 +++++++++++
 sc/source/ui/view/gridwin.cxx |    4 ++++
 2 files changed, 15 insertions(+)

New commits:
commit c7de5aedb130098a5abd127e86e3570db0b3df63
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Nov 18 20:55:54 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Nov 19 11:29:26 2019 +0100

    Related: tdf#125917 release mouse grab before showing warning dialog
    
    Type text into the data validity dropdown cell and click elsewhere.
    The warning dialog cannot be interacted with due to the active mouse
    grab to its parent
    
    Change-Id: I51702c828dee6ec88106f7d44d7e3440f2e61298
    Reviewed-on: https://gerrit.libreoffice.org/83163
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 7556ef49d1ac..6f064ba50269 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -2791,8 +2791,19 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode )
             if (!bOk)
             {
                 if ( pActiveViewSh )                // If it came from MouseButtonDown
+                {
                     pActiveViewSh->StopMarking();   // (the InfoBox consumes the MouseButtonUp)
 
+                    // tdf#125917 Release the grab the a current mouse-down event being handled
+                    // by ScTabView has put on the mouse via its SelectionEngine.
+                    // Otherwise the warning box cannot interact with the mouse
+                    if (ScTabView* pView = pActiveViewSh->GetViewData().GetView())
+                    {
+                        if (ScViewSelectionEngine* pSelEngine = pView->GetSelEngine())
+                            pSelEngine->ReleaseMouse();
+                    }
+                }
+
                 vcl::Window* pParent = nullptr;
                 if (pActiveViewSh)
                     pParent = &pActiveViewSh->GetViewFrame()->GetWindow();
commit d0ec90df4bdc8a59cd6461ec07de9e58222dd33b
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Nov 18 21:28:22 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Nov 19 11:29:12 2019 +0100

    tdf#125917 Ensure mouse is captured before the menu is launched
    
    calc seems to excessively capture the mouse and grabs + floats are messy across
    the different ports. But We usually have the mouse captured before calling the
    menu, except if we are editing a cell, an additional capture here will ensure
    the grab status is the same in both modes and that events go to the same place
    in either case.
    
    Change-Id: I213560273be1a6a398d6a1787a53d64501c473f0
    Reviewed-on: https://gerrit.libreoffice.org/83165
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index c286b7b5d173..c3618dbe99da 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -1754,6 +1754,10 @@ void ScGridWindow::HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventSta
             tools::Rectangle aButtonRect = GetListValButtonRect( aListValPos );
             if ( aButtonRect.IsInside( aPos ) )
             {
+                // tdf#125917 typically we have the mouse captured already, except if are editing the cell.
+                // Ensure its captured before the menu is launched even in the cell editing case
+                CaptureMouse();
+
                 LaunchDataSelectMenu( aListValPos.Col(), aListValPos.Row() );
 
                 nMouseStatus = SC_GM_FILTER;    // not set in DoAutoFilterMenue for bDataSelect


More information about the Libreoffice-commits mailing list