sc: lok: avoid selection jumps with multiple users

Desktop / LibreOffice - Dennis Francis [] - 16 August 2021 12:00 UTC

In LOK case, avoid spurious "leavingwindow" mouse move events which has negative coordinates. We later use these coordinates to compute the cell address corresponding to the event to extend the selection which will be wrong in this case. Such spurious events occur for some reason when a user is selecting a range, (even when not leaving the view area) with one or more other viewers in that sheet. The root cause of these bad coordinates seems to be in vcl

in winproc.cxx, ImplHandleMouseEvent() in the code block starting

// test for mouseleave and mouseenter
VclPtr pMouseMoveWin = pWinFrameData->mpMouseMoveWin; if ( pChild != pMouseMoveWin ) { if ( pMouseMoveWin ) { Point aLeaveMousePos = pMouseMoveWin->ImplFrameToOutput( aMousePos );

This needs more investigation. Meanwhile this interim patch fixes the issue of selection jump by avoiding those unhelpful mouse events.

Conflicts: sc/source/ui/view/gridwin.cxx

Change-Id: I01fb3ae6a3903ada2a44a8b3d2b4a46b0122326b

1241983ec433 sc: lok: avoid selection jumps with multiple users
sc/source/ui/view/gridwin.cxx | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)


  • Share