[RFC v2 wayland-protocols] tablet: define our own enum for tablet tool buttons
Peter Hutterer
peter.hutterer at who-t.net
Mon Nov 21 23:13:24 UTC 2016
On Mon, Nov 21, 2016 at 12:42:36PM +0000, Daniel Stone wrote:
> Hi,
>
> On 20 November 2016 at 05:14, Peter Hutterer <peter.hutterer at who-t.net> wrote:
> > Rather than relying on input-event-codes, define our own enum that is tailored
> > towards the tablet interface.
> >
> > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> > ---
> > Because it's usually easier to pick holes into a patch proposal than come up
> > with ideas elsewhere, here's a quick-and-dirty patch.
> >
> > Advantage: we control the button names/numbers and clients don't have to
> > know about cases where linux/input.h isn't enough.
> > Obvious drawback: adding new buttons requires a new protocol. Given this
> > hardware hasn't really changed much in quite a while, this may not be much
> > of an issue.
>
> Conceptually, I don't see why not.
>
> > @@ -539,6 +539,26 @@
> > <arg name="clicks" type="int" summary="The wheel delta in discrete clicks"/>
> > </event>
> >
> > + <enum name="button">
> > + <description summary="physical button name">
> > + Describes the physical button that produced the button event.
> > + </description>
> > + <entry name="unknown" value="0" summary="An unknown button"/>
> > + <entry name="stylus1" value="1" summary="The primary button on a stylus-like tool"/>
> > + <entry name="stylus2" value="2" summary="The secondary button on a stylus-like tool"/>
> > + <entry name="stylus3" value="3" summary="The third button on a stylus-like tool"/>
> > + <entry name="stylus4" value="4" summary="The forth button on a stylus-like tool"/>
> > + <entry name="stylus5" value="5" summary="The fifth button on a stylus-like tool"/>
> > + <entry name="stylus6" value="6" summary="The sixth button on a stylus-like tool"/>
> > + <entry name="stylus7" value="7" summary="The seventh button on a stylus-like tool"/>
> > + <entry name="stylus8" value="8" summary="The eighth button on a stylus-like tool"/>
> > + <entry name="stylus9" value="9" summary="The ninth button on a stylus-like tool"/>
> > + <entry name="left" value="10" summary="The left button on a mouse-like tool"/>
> > + <entry name="right" value="11" summary="The right button on a mouse-like tool"/>
> > + <entry name="middle" value="12" summary="The middle button on a mouse-like tool"/>
> > + <entry name="thumb" value="13" summary="The thumb button on a mouse-like tool"/>
> > + </enum>
>
> Concretely though, reusing BTN_* codes where possible would make it
> easier for clients to transition between the two.
I disagree here. The kernel only has BTN_STYLUS and BTN_STYLUS2, after that
we overlap with DOUBLETAP range and later buttons that are completely
different (e.g. BTN_GEAR_DOWN). I think this would only make it worse.
This protocol is still unstable, every client needs updates once we mark it
stable anyway, making the enums *values* mean something is counterproductive
IMO.
> Also, 9 stylus buttons seems like an oddly specific number.
was supposed to be 10 [0-9], I just have an index offset error here, sorry :)
Cheers,
Peter
> Anyway, if you switch these values to the current BTN_* equivalents:
> Acked-by: Daniel Stone <daniels at collabora.com>
>
> Cheers,
> Daniel
More information about the wayland-devel
mailing list