diff --git a/src/evdev.c b/src/evdev.c index aacf9a86..3163ee07 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -444,13 +444,14 @@ evdev_configure_device(struct evdev_device *device) unsigned long abs_bits[NBITS(ABS_MAX)]; unsigned long rel_bits[NBITS(REL_MAX)]; unsigned long key_bits[NBITS(KEY_MAX)]; - int has_key, has_abs, has_rel, has_mt; + int has_key, has_abs, has_rel, has_mt, has_button; unsigned int i; has_key = 0; has_rel = 0; has_abs = 0; has_mt = 0; + has_button = 0; device->caps = 0; ioctl(device->fd, EVIOCGBIT(0, sizeof(ev_bits)), ev_bits); @@ -542,7 +543,7 @@ evdev_configure_device(struct evdev_device *device) } for (i = BTN_MISC; i < BTN_JOYSTICK; i++) { if (TEST_BIT(key_bits, i)) { - device->caps |= EVDEV_BUTTON; + has_button = 1; device->caps &= ~EVDEV_TOUCH; break; } @@ -563,14 +564,14 @@ evdev_configure_device(struct evdev_device *device) return 0; } - if ((has_abs || has_rel) && (device->caps & EVDEV_BUTTON)) { + if ((has_abs || has_rel) && has_button) { weston_seat_init_pointer(device->seat); device->seat_caps |= EVDEV_SEAT_POINTER; weston_log("input device %s, %s is a pointer caps =%s%s%s\n", device->devname, device->devnode, has_abs ? " absolute-motion" : "", has_rel ? " relative-motion": "", - device->caps & EVDEV_BUTTON ? " button" : ""); + has_button ? " button" : ""); } if ((device->caps & EVDEV_KEYBOARD)) { if (weston_seat_init_keyboard(device->seat, NULL) < 0) diff --git a/src/evdev.h b/src/evdev.h index 79ff9385..7dea01e3 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -43,8 +43,7 @@ enum evdev_event_type { enum evdev_device_capability { EVDEV_KEYBOARD = (1 << 0), - EVDEV_BUTTON = (1 << 1), - EVDEV_TOUCH = (1 << 2), + EVDEV_TOUCH = (1 << 1), }; enum evdev_device_seat_capability {