input: pointer-leave: reset moused *before* doing anything else

And update xcursor. This is currently not necessary, but doesn't hurt.
This commit is contained in:
Daniel Eklöf 2019-11-29 22:13:19 +01:00
parent 6947928a7f
commit 2c12549f93
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

11
input.c
View file

@ -459,12 +459,17 @@ wl_pointer_leave(void *data, struct wl_pointer *wl_pointer,
uint32_t serial, struct wl_surface *surface) uint32_t serial, struct wl_surface *surface)
{ {
struct wayland *wayl = data; struct wayland *wayl = data;
if (wayl->moused == NULL) { struct terminal *old_moused = wayl->moused;
LOG_DBG("pointer-leave: surface = %p, old-moused = %p", surface, old_moused);
wayl->moused = NULL;
if (old_moused == NULL) {
LOG_WARN( LOG_WARN(
"compositor sent pointer_leave event without a pointer_enter " "compositor sent pointer_leave event without a pointer_enter "
"event: surface=%p", surface); "event: surface=%p", surface);
} } else
wayl->moused = NULL; term_xcursor_update(old_moused);
} }
static void static void