summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stone <daniel@fooishbar.org>2012-06-01 12:13:59 +0100
committerKristian Høgsberg <krh@bitplanet.net>2012-06-01 10:37:44 -0400
commitcfd0e726cc13f7eb341cc5a1444d2153b5b516b0 (patch)
tree7d52abd50505dc22d7c9015428336644938da174
parent8db796947f5111a498b5421a820c6628e986fca0 (diff)
Brown-paper bag fix for LED
The O_RDWR change got lost in a rebase, and as Peter suggested as well, make sure to set EVDEV_KEYBOARD if the device has EV_LED. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r--src/evdev.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 8439eda..23d22d7 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -58,7 +58,7 @@ evdev_led_update(struct weston_seat *seat_base, enum weston_led leds)
wl_list_for_each(device, &seat->devices_list, link) {
if (device->caps & EVDEV_KEYBOARD)
- write(device->fd, ev, sizeof *ev);
+ write(device->fd, ev, sizeof ev);
}
}
@@ -433,6 +433,9 @@ evdev_configure_device(struct evdev_input_device *device)
}
}
}
+ if (TEST_BIT(ev_bits, EV_LED)) {
+ device->caps |= EVDEV_KEYBOARD;
+ }
/* This rule tries to catch accelerometer devices and opt out. We may
* want to adjust the protocol later adding a proper event for dealing
@@ -478,7 +481,7 @@ evdev_input_device_create(struct evdev_seat *master,
/* Use non-blocking mode so that we can loop on read on
* evdev_input_device_data() until all events on the fd are
* read. mtdev_get() also expects this. */
- device->fd = weston_launcher_open(ec, path, O_RDONLY | O_NONBLOCK);
+ device->fd = weston_launcher_open(ec, path, O_RDWR | O_NONBLOCK);
if (device->fd < 0)
goto err0;