From 375dcf0810d8fdeff4a7272b22375632bd96ae4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 10 Aug 2020 18:59:03 +0200 Subject: [PATCH] input: pointer-leave: don't reset mouse properties with memset() Using memset() also clears the mouse bindings. This is both incorrect, and leaked memory. --- input.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/input.c b/input.c index afd9155a..f3a70841 100644 --- a/input.c +++ b/input.c @@ -1211,7 +1211,12 @@ wl_pointer_leave(void *data, struct wl_pointer *wl_pointer, } /* Reset mouse state */ - memset(&seat->mouse, 0, sizeof(seat->mouse)); + seat->mouse.x = seat->mouse.y = 0; + seat->mouse.col = seat->mouse.row = 0; + seat->mouse.button = seat->mouse.last_button = seat->mouse.count = 0; + memset(&seat->mouse.last_time, 0, sizeof(seat->mouse.last_time)); + seat->mouse.axis_aggregated = 0.0; + seat->mouse.have_discrete = false; seat->mouse_focus = NULL; if (old_moused == NULL) {