From: Jonas Ådahl Date: Thu, 17 Oct 2013 21:04:08 +0000 (+0200) Subject: udev-seat: Repick seat after a new device was added X-Git-Tag: upstream/0.1.8~835 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3042ffe0113ae0c2595fbea1e8cf373212bbd50e;p=profile%2Fivi%2Fweston-ivi-shell.git udev-seat: Repick seat after a new device was added Signed-off-by: Jonas Ådahl --- 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; };