evdev: Ignore joystick devices

We don't handle them in any way now and having your steering wheel move
the cursor isn't useful.  Applications can still open evdev devices and
access them directly like they already do.
This commit is contained in:
Kristian Høgsberg 2013-08-13 14:55:39 -07:00
parent 9f42e50868
commit b1c02a80ef

View File

@ -445,6 +445,16 @@ evdev_handle_device(struct evdev_device *device)
ioctl(device->fd, EVIOCGBIT(EV_ABS, sizeof(abs_bits)), ioctl(device->fd, EVIOCGBIT(EV_ABS, sizeof(abs_bits)),
abs_bits); abs_bits);
if (TEST_BIT(abs_bits, ABS_WHEEL) ||
TEST_BIT(abs_bits, ABS_GAS) ||
TEST_BIT(abs_bits, ABS_BRAKE) ||
TEST_BIT(abs_bits, ABS_HAT0X)) {
weston_log("device %s is a joystick, ignoring\n",
device->devnode);
return 0;
}
if (TEST_BIT(abs_bits, ABS_X)) { if (TEST_BIT(abs_bits, ABS_X)) {
ioctl(device->fd, EVIOCGABS(ABS_X), &absinfo); ioctl(device->fd, EVIOCGABS(ABS_X), &absinfo);
device->abs.min_x = absinfo.minimum; device->abs.min_x = absinfo.minimum;