mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-25 19:50:05 +01:00
Some tablets such as those in the XP-PEN PRO series use "dials" which are actually scrollwheels and emit EV_REL events. These should not be emulated as rings (which are absolute) so we must expose them as a new tablet event. Adds LIBINPUT_EVENT_TABLET_PAD_DIAL that work largely identical as our high-resolution wheel events (i.e. the values are in multiples or fractions of of 120). Currently supports two dials. This is a lot of copy/paste from the ring axes because the interface is virtually identical. The main difference is that dials give us a v120 value in the same manner as our scroll axes. Notes: - REL_DIAL is mutually exclusive with REL_WHEEL, we assume the kernel doesn't (at this point) give us devices with both. If this changes for devices with three dials (wheel + hwheel + dial) we need to add code for that. - REL_DIAL does not have a high-resolution axis and we assume that any device with REL_WHEEL_HI_RES will also have REL_HWHEEL_HI_RES (if the second wheel exists). - With dials being REL_DIAL or REL_WHEEL there is no possibility of detecting a finger release (the kernel does not route EV_RELs with a value of zero). Unless this is implemented via a side-channel - and it doesn't look like any hardware that supports dials does that - we cannot forward any information here. So unlike absolute rings we cannot provide a source information here. Closes #600 Co-authored-by: Peter Hutterer <peter.hutterer@who-t.net> Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/967> |
||
|---|---|---|
| .. | ||
| libinput-analyze-per-slot-delta.man | ||
| libinput-analyze-per-slot-delta.py | ||
| libinput-analyze-recording.man | ||
| libinput-analyze-recording.py | ||
| libinput-analyze-touch-down-state.man | ||
| libinput-analyze-touch-down-state.py | ||
| libinput-analyze.c | ||
| libinput-analyze.man | ||
| libinput-debug-events.c | ||
| libinput-debug-events.man | ||
| libinput-debug-gui.c | ||
| libinput-debug-gui.man | ||
| libinput-debug-tablet.c | ||
| libinput-debug-tablet.man | ||
| libinput-list-devices.c | ||
| libinput-list-devices.man | ||
| libinput-list-kernel-devices.man | ||
| libinput-list-kernel-devices.py | ||
| libinput-measure-fuzz.man | ||
| libinput-measure-fuzz.py | ||
| libinput-measure-touch-size.man | ||
| libinput-measure-touch-size.py | ||
| libinput-measure-touchpad-pressure.man | ||
| libinput-measure-touchpad-pressure.py | ||
| libinput-measure-touchpad-size.man | ||
| libinput-measure-touchpad-size.py | ||
| libinput-measure-touchpad-tap.man | ||
| libinput-measure-touchpad-tap.py | ||
| libinput-measure.c | ||
| libinput-measure.man | ||
| libinput-quirks.c | ||
| libinput-quirks.man | ||
| libinput-record-verify-yaml.py | ||
| libinput-record.c | ||
| libinput-record.man | ||
| libinput-replay.man | ||
| libinput-replay.py | ||
| libinput-test.c | ||
| libinput-test.man | ||
| libinput-tool.c | ||
| libinput.man | ||
| make-ptraccel-graphs.sh | ||
| ptraccel-debug.c | ||
| razer-quirks-lister.py | ||
| shared.c | ||
| shared.h | ||
| test_tool_option_parsing.py | ||