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 <[email protected]> AuthorDate: Mon Nov 18 20:55:54 2019 +0000 Commit: Caolán McNamara <[email protected]> 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 <[email protected]> Tested-by: Caolán McNamara <[email protected]> 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 <[email protected]> AuthorDate: Mon Nov 18 21:28:22 2019 +0000 Commit: Caolán McNamara <[email protected]> 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 <[email protected]> Tested-by: Caolán McNamara <[email protected]> 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 _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
