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>
Daniel Stone 13 years ago committed by Kristian Høgsberg
parent 8db796947f
commit cfd0e726cc
  1. 7
      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) { wl_list_for_each(device, &seat->devices_list, link) {
if (device->caps & EVDEV_KEYBOARD) 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 /* This rule tries to catch accelerometer devices and opt out. We may
* want to adjust the protocol later adding a proper event for dealing * 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 /* Use non-blocking mode so that we can loop on read on
* evdev_input_device_data() until all events on the fd are * evdev_input_device_data() until all events on the fd are
* read. mtdev_get() also expects this. */ * 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) if (device->fd < 0)
goto err0; goto err0;

Loading…
Cancel
Save