From 0e4e570caee9f857d13e35a9f4c78d52343872d7 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 25 Jul 2017 16:39:20 -0500 Subject: [PATCH] input: Stop leaking libinput event source on session deactivation This is easily noticed as a leaked fd on every VC switch. Signed-off-by: Derek Foreman Reviewed-by: Peter Hutterer Tested-by: Pekka Paalanen --- libweston/libinput-seat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libweston/libinput-seat.c b/libweston/libinput-seat.c index 8cf5666b..953f6205 100644 --- a/libweston/libinput-seat.c +++ b/libweston/libinput-seat.c @@ -134,6 +134,8 @@ udev_input_disable(struct udev_input *input) if (input->suspended) return; + wl_event_source_remove(input->libinput_source); + input->libinput_source = NULL; libinput_suspend(input->libinput); process_events(input); input->suspended = 1; @@ -337,7 +339,8 @@ udev_input_destroy(struct udev_input *input) { struct udev_seat *seat, *next; - wl_event_source_remove(input->libinput_source); + if (input->libinput_source) + wl_event_source_remove(input->libinput_source); wl_list_for_each_safe(seat, next, &input->compositor->seat_list, base.link) udev_seat_destroy(seat); libinput_unref(input->libinput);