From 2c12549f931afe5f8f10bcbab4cd4b4407b31428 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 29 Nov 2019 22:13:19 +0100 Subject: [PATCH] input: pointer-leave: reset moused *before* doing anything else And update xcursor. This is currently not necessary, but doesn't hurt. --- input.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/input.c b/input.c index 0816e0ad..14f2d722 100644 --- a/input.c +++ b/input.c @@ -459,12 +459,17 @@ wl_pointer_leave(void *data, struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface) { 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( "compositor sent pointer_leave event without a pointer_enter " "event: surface=%p", surface); - } - wayl->moused = NULL; + } else + term_xcursor_update(old_moused); } static void