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 <derekf@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/libweston/libinput-seat.c b/libweston/libinput-seat.c
index 8cf5666..953f620 100644
--- a/libweston/libinput-seat.c
+++ b/libweston/libinput-seat.c
@@ -134,6 +134,8 @@
 	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 @@
 {
 	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);