Draft: Add support for tablet dials
Summary
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 and the relevant functions to query dial state. Supports up to 2 dials and the dial state ranges from -1 to 1.
Closes #845.
Tasks
This is not ready for merge yet, but wanted some feedback. It turns out to be less work than I thought :-)
-
I see that symbols are exposed from certain libinput versions onwards ( libinput.sym
) do I just stick my new functions into the latest version bracket? -
Need to expose dial information in debug, it's currently STUB'd -
I need to research and find out if there's any tablets that could possibly have more than two dials. I'm guessing not, but better make sure.
I have used this new API upstream, see the relevant KWin merge request so it is tested.