[PATCH weston 4/4] udev-seat: Repick seat after a new device was added

Jonas Ådahl jadahl at gmail.com
Thu Oct 17 23:04:08 CEST 2013


Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
---
 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 0a4568b..afa4459 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;
 };
 
 
-- 
1.8.1.2



More information about the wayland-devel mailing list