On 30. 06. 20, 9:10, Tammo Block wrote: > Add additional defines for mouse event types. The change of the value > of TIOCL_SELBUTTONMASK deserves a bit more explanation : > > The old value of 15 uses the first 4 bits and sends them unchanged back > to userspace if requested by an application. But in fact only the first > two bits have ever been used by any daemon or useful at all, as the > kernel already knows the status of the shift and alt keys encoded in > bits 3 and 4. On the other hand we *do* want to know the status of bits > 6-8, encoding button values >3 and mouse move and drag operations. > > This change is up- and downwards compatible by masking all spourious > bits and leaving only the undisputed parts (bits 1 and 2) untouched. > > Signed-off-by: Tammo Block <tammo.bl...@gmail.com> > --- > include/uapi/linux/tiocl.h | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/include/uapi/linux/tiocl.h b/include/uapi/linux/tiocl.h > index b32acc229024..c862053041e4 100644 > --- a/include/uapi/linux/tiocl.h > +++ b/include/uapi/linux/tiocl.h > @@ -9,7 +9,7 @@ > #define TIOCL_SELPOINTER 3 /* show the pointer */ > #define TIOCL_SELCLEAR 4 /* clear visibility of selection */ > #define TIOCL_SELMOUSEREPORT 16 /* report beginning of > selection */ > -#define TIOCL_SELBUTTONMASK 15 /* button mask for report */ > +#define TIOCL_SELBUTTONMASK 227 /* button mask for report */
0xe3 is more obvious (can be in-brain translated to bits). If C only had 0b prefix like perl has... > /* selection extent */ > struct tiocl_selection { > unsigned short xs; /* X start */ > @@ -28,7 +28,11 @@ struct tiocl_selection { > > /* these two don't return a value: they write it back in the type */ > #define TIOCL_GETSHIFTSTATE 6 /* write shift state */ > -#define TIOCL_GETMOUSEREPORTING 7 /* write whether mouse event > are reported */ > +#define TIOCL_GETMOUSEREPORTING 7 /* write which mouse event are > reported */ s/event/&s/ > +#define TIOCL_REPORTBTNPRESS 1 /* report button press > only "9" */ > +#define TIOCL_REPORTRELEASE 2 /* report press and > release "1000" */ > +#define TIOCL_REPORTDRAG 3 /* report drag events > "1002" */ > +#define TIOCL_REPORTANYMOVE 4 /* report any movement > "1003" */ > #define TIOCL_SETVESABLANK 10 /* set vesa blanking mode */ > #define TIOCL_SETKMSGREDIRECT 11 /* restrict kernel messages to > a vt */ > #define TIOCL_GETFGCONSOLE 12 /* get foreground vt */ > thanks, -- js suse labs