No functional changes

Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
I needed this for the rescan patch but it makes the calls more symmetrical,
so we might as well push it independently.

 src/udev-seat.c | 41 +++++++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 18 deletions(-)

diff --git a/src/udev-seat.c b/src/udev-seat.c
index e622de2..366c92b 100644
--- a/src/udev-seat.c
+++ b/src/udev-seat.c
@@ -116,6 +116,26 @@ device_added(struct udev_device *udev_device, struct 
udev_input *input)
        return 0;
 }
 
+static void
+device_removed(struct udev_device *udev_device, struct udev_input *input)
+{
+       const char *devnode;
+       struct evdev_device *device, *next;
+       struct udev_seat *seat;
+
+       devnode = udev_device_get_devnode(udev_device);
+       list_for_each(seat, &input->base.seat_list, base.link) {
+               list_for_each_safe(device, next,
+                               &seat->base.devices_list, base.link)
+                       if (!strcmp(device->devnode, devnode)) {
+                               log_info("input device %s, %s removed\n",
+                                               device->devname, 
device->devnode);
+                               evdev_device_remove(device);
+                               break;
+                       }
+       }
+}
+
 static int
 udev_input_add_devices(struct udev_input *input, struct udev *udev)
 {
@@ -155,10 +175,7 @@ evdev_udev_handler(void *data)
 {
        struct udev_input *input = data;
        struct udev_device *udev_device;
-       struct evdev_device *device, *next;
        const char *action;
-       const char *devnode;
-       struct udev_seat *seat;
 
        udev_device = udev_monitor_receive_device(input->udev_monitor);
        if (!udev_device)
@@ -171,22 +188,10 @@ evdev_udev_handler(void *data)
        if (strncmp("event", udev_device_get_sysname(udev_device), 5) != 0)
                goto out;
 
-       if (!strcmp(action, "add")) {
+       if (!strcmp(action, "add"))
                device_added(udev_device, input);
-       }
-       else if (!strcmp(action, "remove")) {
-               devnode = udev_device_get_devnode(udev_device);
-               list_for_each(seat, &input->base.seat_list, base.link) {
-                       list_for_each_safe(device, next,
-                                          &seat->base.devices_list, base.link)
-                               if (!strcmp(device->devnode, devnode)) {
-                                       log_info("input device %s, %s 
removed\n",
-                                                device->devname, 
device->devnode);
-                                       evdev_device_remove(device);
-                                       break;
-                               }
-               }
-       }
+       else if (!strcmp(action, "remove"))
+               device_removed(udev_device, input);
 
 out:
        udev_device_unref(udev_device);
-- 
1.8.5.3

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to