input: finalize mouse selection on a pointer-leave event on the GRID surface

If a mouse selection was ongoing, and the user switched
workspace (probably using the keyboard...), and then back, the
selection was still treated as ongoing, while all other mouse state
has been reset.

This meant the user had to tap at least once to stop the selection.
This commit is contained in:
Daniel Eklöf 2021-11-25 15:21:53 +01:00
parent 2eef28590a
commit 325ad6dd4e
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 9 additions and 1 deletions

View file

@ -45,6 +45,11 @@
### Deprecated ### Deprecated
### Removed ### Removed
### Fixed ### Fixed
* An ongoing mouse selection is now finalized on a pointer leave event
(for example by switching workspace while doing a mouse selection).
### Security ### Security
### Contributors ### Contributors

View file

@ -1531,8 +1531,11 @@ wl_pointer_leave(void *data, struct wl_pointer *wl_pointer,
render_refresh_csd(old_moused); render_refresh_csd(old_moused);
break; break;
case TERM_SURF_NONE:
case TERM_SURF_GRID: case TERM_SURF_GRID:
selection_finalize(seat, old_moused, seat->pointer.serial);
break;
case TERM_SURF_NONE:
case TERM_SURF_SEARCH: case TERM_SURF_SEARCH:
case TERM_SURF_SCROLLBACK_INDICATOR: case TERM_SURF_SCROLLBACK_INDICATOR:
case TERM_SURF_RENDER_TIMER: case TERM_SURF_RENDER_TIMER: