From 3042ffe0113ae0c2595fbea1e8cf373212bbd50e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonas=20=C3=85dahl?= Date: Thu, 17 Oct 2013 23:04:08 +0200 Subject: [PATCH] udev-seat: Repick seat after a new device was added MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Ådahl --- src/input.c | 2 +- src/udev-seat.c | 5 +++++ src/udev-seat.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/input.c b/src/input.c index 4f6ba7b..272fec0 100644 --- a/src/input.c +++ b/src/input.c @@ -45,7 +45,7 @@ static void unbind_resource(struct wl_resource *resource) wl_list_remove(wl_resource_get_link(resource)); } -void +WL_EXPORT void weston_seat_repick(struct weston_seat *seat) { const struct weston_pointer *pointer = seat->pointer; diff --git a/src/udev-seat.c b/src/udev-seat.c index 4ef7ff3..ffaf08a 100644 --- a/src/udev-seat.c +++ b/src/udev-seat.c @@ -128,6 +128,9 @@ device_added(struct udev_device *udev_device, struct udev_input *input) device->output = output; } + if (input->enabled == 1) + weston_seat_repick(&seat->base); + return 0; } @@ -263,6 +266,8 @@ udev_input_enable(struct udev_input *input, struct udev *udev) if (udev_input_add_devices(input, udev) < 0) return -1; + input->enabled = 1; + return 0; } diff --git a/src/udev-seat.h b/src/udev-seat.h index 5bf7caa..4cb6f07 100644 --- a/src/udev-seat.h +++ b/src/udev-seat.h @@ -39,6 +39,7 @@ struct udev_input { struct wl_event_source *udev_monitor_source; char *seat_id; struct weston_compositor *compositor; + int enabled; }; -- 2.7.4