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

Reply via email to