From 7afb8a874aa71c8cf2fcba930ac6d5680070f18a Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Mon, 18 Nov 2019 21:28:22 +0000 Subject: tdf#125917 Ensure mouse is captured before the menu is launched MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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/83166 Tested-by: Jenkins Reviewed-by: Xisco Faulí --- sc/source/ui/view/gridwin.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 3e13352820af..f26f3c77e1cc 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -1774,6 +1774,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 -- cgit v1.2.3