From 179458ad23a0e7b81fa9e83245ea8cee43e4fa14 Mon Sep 17 00:00:00 2001 From: Jeffy Chen Date: Mon, 2 Sep 2019 10:15:26 +0800 Subject: [PATCH] clients: Drop corresponding touch points when destroying windows This is to avoid memory leaking of these touch points. Signed-off-by: Jeffy Chen --- clients/window.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/clients/window.c b/clients/window.c index 1c5a81f1..3d1e8e4a 100644 --- a/clients/window.c +++ b/clients/window.c @@ -1568,8 +1568,18 @@ window_destroy(struct window *window) wl_list_remove(&window->redraw_task.link); wl_list_for_each(input, &display->input_list, link) { - if (input->touch_focus == window) + if (input->touch_focus == window) { + struct touch_point *tp, *tmp; + + wl_list_for_each_safe(tp, tmp, + &input->touch_point_list, + link) { + wl_list_remove(&tp->link); + free(tp); + } + input->touch_focus = NULL; + } if (input->pointer_focus == window) input->pointer_focus = NULL; if (input->keyboard_focus == window) -- 2.34.1