selection: don't automatically no-op operations if selection isn't enabled

When the client is capturing the mouse, selection can only be done by
holding done shift.

This is why a lot of selection functions are no-ops if selection isn't
currently enabled.

However, there are many cases where we actually need to modify the
selection. In particular, selection_cancel().

Thus, only check for enabled selection when we're dealing with user
input.

Bonus: this also fixes a bug where an ongoing selection were finalized
as soon as the user released shift, even if he was still holding down
the mouse button.
This commit is contained in:
Daniel Eklöf 2020-05-16 21:09:59 +02:00
parent 38c050746d
commit e4a2d41f51
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 25 additions and 29 deletions

View file

@ -24,6 +24,14 @@
### Deprecated
### Removed
### Fixed
* Do not stop an ongoing selection when `shift` is released. When the
client application is capturing mouse events, one must hold down
`shift` to start a selection. This selection is now finalized only
when the mouse button is released - not as soon as `shift` is
released.
### Security