libinput: don't use weston_config when configuring input devices

Instead add callbacks to the drm and fbdev backends and pass that to
the input backens so that when a new device needs to be configured
that is called and the compositor can configure it.

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/src/libinput-seat.h b/src/libinput-seat.h
index 0813189..65c9b64 100644
--- a/src/libinput-seat.h
+++ b/src/libinput-seat.h
@@ -33,17 +33,23 @@
 
 #include "compositor.h"
 
+struct libinput_device;
+
 struct udev_seat {
 	struct weston_seat base;
 	struct wl_list devices_list;
 	struct wl_listener output_create_listener;
 };
 
+typedef void (*udev_configure_device_t)(struct weston_compositor *compositor,
+					struct libinput_device *device);
+
 struct udev_input {
 	struct libinput *libinput;
 	struct wl_event_source *libinput_source;
 	struct weston_compositor *compositor;
 	int suspended;
+	udev_configure_device_t configure_device;
 };
 
 int
@@ -54,7 +60,8 @@
 udev_input_init(struct udev_input *input,
 		struct weston_compositor *c,
 		struct udev *udev,
-		const char *seat_id);
+		const char *seat_id,
+		udev_configure_device_t configure_device);
 void
 udev_input_destroy(struct udev_input *input);