diff options
author | José Expósito <jose.exposito89@gmail.com> | 2023-01-16 19:18:40 +0100 |
---|---|---|
committer | José Expósito <jose.exposito89@gmail.com> | 2023-01-16 19:22:04 +0100 |
commit | 1d7172488dcd4148ea7c89e120cd24018522842d (patch) | |
tree | da9e20d8b6b84c1a3a1d686c43c5c566f49a8af3 /src | |
parent | 0266428c9300a18cec44786d84d5502b89c1e6eb (diff) | |
download | libinput-1d7172488dcd4148ea7c89e120cd24018522842d.tar.gz |
quirks: touchpad: add ModelPressurePad
Unlike in traditional touchpads, whose pressure value equals contact
size, on pressure pads pressure is a real physical axis.
We don't take advantage of the pressure information reported by
pressure pads yet, so we disable it to avoid errors.
Add a new model quirk for pressure pads instead of disabling
ABS_MT_PRESSURE and ABS_PRESSURE.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/evdev-mt-touchpad.c | 3 | ||||
-rw-r--r-- | src/quirks.c | 1 | ||||
-rw-r--r-- | src/quirks.h | 1 |
3 files changed, 4 insertions, 1 deletions
diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c index c79133b5..1ccf8037 100644 --- a/src/evdev-mt-touchpad.c +++ b/src/evdev-mt-touchpad.c @@ -3702,7 +3702,8 @@ tp_init_pressurepad(struct tp_dispatch *tp, * * See also #562 */ - if (libevdev_get_abs_resolution(device->evdev, ABS_MT_PRESSURE) != 0) { + if (libevdev_get_abs_resolution(device->evdev, ABS_MT_PRESSURE) != 0 || + evdev_device_has_model_quirk(device, QUIRK_MODEL_PRESSURE_PAD)) { libevdev_disable_event_code(device->evdev, EV_ABS, ABS_MT_PRESSURE); libevdev_disable_event_code(device->evdev, EV_ABS, ABS_PRESSURE); } diff --git a/src/quirks.c b/src/quirks.c index 0e3006b5..7e916009 100644 --- a/src/quirks.c +++ b/src/quirks.c @@ -269,6 +269,7 @@ quirk_get_name(enum quirk q) case QUIRK_MODEL_TOUCHPAD_VISIBLE_MARKER: return "ModelTouchpadVisibleMarker"; case QUIRK_MODEL_TRACKBALL: return "ModelTrackball"; case QUIRK_MODEL_WACOM_TOUCHPAD: return "ModelWacomTouchpad"; + case QUIRK_MODEL_PRESSURE_PAD: return "ModelPressurePad"; case QUIRK_ATTR_SIZE_HINT: return "AttrSizeHint"; case QUIRK_ATTR_TOUCH_SIZE_RANGE: return "AttrTouchSizeRange"; diff --git a/src/quirks.h b/src/quirks.h index bd96c3af..30878546 100644 --- a/src/quirks.h +++ b/src/quirks.h @@ -86,6 +86,7 @@ enum quirk { QUIRK_MODEL_TOUCHPAD_VISIBLE_MARKER, QUIRK_MODEL_TRACKBALL, QUIRK_MODEL_WACOM_TOUCHPAD, + QUIRK_MODEL_PRESSURE_PAD, _QUIRK_LAST_MODEL_QUIRK_, /* Guard: do not modify */ |