mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-04 09:20:29 +01:00
evdev: Use a has_keyboard flag instead of EVDEV_KEYBOARD bit
This commit is contained in:
parent
4124ca1433
commit
f6caf57b00
2 changed files with 8 additions and 9 deletions
14
src/evdev.c
14
src/evdev.c
|
|
@ -52,7 +52,7 @@ evdev_device_led_update(struct evdev_device *device, enum libinput_led leds)
|
|||
struct input_event ev[ARRAY_LENGTH(map) + 1];
|
||||
unsigned int i;
|
||||
|
||||
if (!device->caps & EVDEV_KEYBOARD)
|
||||
if (!(device->seat_caps & EVDEV_DEVICE_KEYBOARD))
|
||||
return;
|
||||
|
||||
memset(ev, 0, sizeof(ev));
|
||||
|
|
@ -473,7 +473,7 @@ 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, has_button;
|
||||
int has_key, has_abs, has_rel, has_mt, has_button, has_keyboard;
|
||||
unsigned int i;
|
||||
|
||||
has_key = 0;
|
||||
|
|
@ -481,6 +481,7 @@ evdev_configure_device(struct evdev_device *device)
|
|||
has_abs = 0;
|
||||
has_mt = 0;
|
||||
has_button = 0;
|
||||
has_keyboard = 0;
|
||||
device->caps = 0;
|
||||
|
||||
ioctl(device->fd, EVIOCGBIT(0, sizeof(ev_bits)), ev_bits);
|
||||
|
|
@ -559,7 +560,7 @@ evdev_configure_device(struct evdev_device *device)
|
|||
if (i >= BTN_MISC && i < KEY_OK)
|
||||
continue;
|
||||
if (TEST_BIT(key_bits, i)) {
|
||||
device->caps |= EVDEV_KEYBOARD;
|
||||
has_keyboard = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -574,9 +575,8 @@ evdev_configure_device(struct evdev_device *device)
|
|||
}
|
||||
}
|
||||
}
|
||||
if (TEST_BIT(ev_bits, EV_LED)) {
|
||||
device->caps |= EVDEV_KEYBOARD;
|
||||
}
|
||||
if (TEST_BIT(ev_bits, EV_LED))
|
||||
has_keyboard = 1;
|
||||
|
||||
/* This rule tries to catch accelerometer devices and opt out. We may
|
||||
* want to adjust the protocol later adding a proper event for dealing
|
||||
|
|
@ -588,7 +588,7 @@ evdev_configure_device(struct evdev_device *device)
|
|||
|
||||
if ((has_abs || has_rel) && has_button)
|
||||
device->seat_caps |= EVDEV_DEVICE_POINTER;
|
||||
if ((device->caps & EVDEV_KEYBOARD))
|
||||
if (has_keyboard)
|
||||
device->seat_caps |= EVDEV_DEVICE_KEYBOARD;
|
||||
if ((device->caps & EVDEV_TOUCH))
|
||||
device->seat_caps |= EVDEV_DEVICE_TOUCH;
|
||||
|
|
|
|||
|
|
@ -44,8 +44,7 @@ enum evdev_event_type {
|
|||
};
|
||||
|
||||
enum evdev_device_capability {
|
||||
EVDEV_KEYBOARD = (1 << 0),
|
||||
EVDEV_TOUCH = (1 << 1),
|
||||
EVDEV_TOUCH = (1 << 0),
|
||||
};
|
||||
|
||||
enum evdev_device_seat_capability {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue