multi-seat: improve handling of multiple (mouse) pointers

* xcursor always set for all pointers
* xcursor sometimes not updated when it should be
* mouse grabbed state wasn't per seat, but global (i.e. "does at least
  one seat enable mouse grabbing")
* selection enabled state wasn't per seat
This commit is contained in:
Daniel Eklöf 2020-07-09 09:52:11 +02:00
parent 699cbaf380
commit 4e48d550ef
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
8 changed files with 97 additions and 90 deletions

View file

@ -21,11 +21,11 @@
#include "vt.h"
bool
selection_enabled(const struct terminal *term)
selection_enabled(const struct terminal *term, struct seat *seat)
{
return
term->mouse_tracking == MOUSE_NONE ||
term_mouse_grabbed(term) ||
term_mouse_grabbed(term, seat) ||
term->is_searching;
}