[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