This is easily noticed as a leaked fd on every VC switch.

Signed-off-by: Derek Foreman <[email protected]>
---
 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);
-- 
2.13.3

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to