term: add term_mouse_grabbed()

When this returns true, it means we have keyboard focus and are
grabbing the mouse (for e.g. selections), regardless of whether the
client has enabled mouse tracking or not.
This commit is contained in:
Daniel Eklöf 2019-11-30 17:06:15 +01:00
parent 5d2b2dc8a7
commit 2208f4304b
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 17 additions and 30 deletions

View file

@ -21,23 +21,12 @@
#define min(x, y) ((x) < (y) ? (x) : (y))
#define max(x, y) ((x) > (y) ? (x) : (y))
static bool
selection_forced(const struct terminal *term)
{
const struct wayland *wayl = term->wl;
return wayl->focused == term &&
wayl->kbd.shift &&
!wayl->kbd.alt &&
!wayl->kbd.ctrl &&
!wayl->kbd.meta;
}
bool
selection_enabled(const struct terminal *term)
{
return
term->mouse_tracking == MOUSE_NONE ||
selection_forced(term) ||
term_mouse_grabbed(term) ||
term->is_searching;
}