From 4a75370823d9d63f6aa8a3dd783268f911ce2958 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 6 Aug 2012 14:57:07 +0300 Subject: [PATCH] evdev: do not pass a list to evdev_led_update() evdev_led_update() does not really need the whole list of device at once, it can be called one device at a time. Signed-off-by: Pekka Paalanen --- src/evdev.c | 13 ++++++------- src/evdev.h | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index 7d93564..dba33ba 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -31,7 +31,7 @@ #include "evdev.h" void -evdev_led_update(struct wl_list *evdev_devices, enum weston_led leds) +evdev_led_update(struct evdev_input_device *device, enum weston_led leds) { static const struct { enum weston_led weston; @@ -41,10 +41,12 @@ evdev_led_update(struct wl_list *evdev_devices, enum weston_led leds) { LED_CAPS_LOCK, LED_CAPSL }, { LED_SCROLL_LOCK, LED_SCROLLL }, }; - struct evdev_input_device *device; struct input_event ev[ARRAY_LENGTH(map)]; unsigned int i; + if (!device->caps & EVDEV_KEYBOARD) + return; + memset(ev, 0, sizeof(ev)); for (i = 0; i < ARRAY_LENGTH(map); i++) { ev[i].type = EV_LED; @@ -52,11 +54,8 @@ evdev_led_update(struct wl_list *evdev_devices, enum weston_led leds) ev[i].value = !!(leds & map[i].weston); } - wl_list_for_each(device, evdev_devices, link) { - if (device->caps & EVDEV_KEYBOARD) - i = write(device->fd, ev, sizeof ev); - (void)i; /* no, we really don't care about the return value */ - } + i = write(device->fd, ev, sizeof ev); + (void)i; /* no, we really don't care about the return value */ } static inline void diff --git a/src/evdev.h b/src/evdev.h index 379838a..003b362 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -106,7 +106,7 @@ struct evdev_dispatch * evdev_touchpad_create(struct evdev_input_device *device); void -evdev_led_update(struct wl_list *evdev_devices, enum weston_led leds); +evdev_led_update(struct evdev_input_device *device, enum weston_led leds); struct evdev_input_device * evdev_input_device_create(struct weston_seat *seat, -- 2.7.4