[PATCH] Fix "Back", "Forward", and other special mouse buttons in XWayland.

Peter Hutterer peter.hutterer at who-t.net
Sun Dec 21 20:43:07 PST 2014


On Sun, Dec 21, 2014 at 02:39:02AM -0800, Dima Ryazanov wrote:
> Currently, the indexes are off by 4 because of the scroll buttons.
> 
> Signed-off-by: Dima Ryazanov <dima at gmail.com>
> ---
>  hw/xwayland/xwayland-input.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c
> index b8c543c..ad30c31 100644
> --- a/hw/xwayland/xwayland-input.c
> +++ b/hw/xwayland/xwayland-input.c
> @@ -233,6 +233,9 @@ pointer_handle_button(void *data, struct wl_pointer *pointer, uint32_t serial,
>      xwl_seat->xwl_screen->serial = serial;
>  
>      switch (button) {
> +    case BTN_LEFT:
> +        index = 1;
> +        break;
>      case BTN_MIDDLE:
>          index = 2;
>          break;
> @@ -240,7 +243,9 @@ pointer_handle_button(void *data, struct wl_pointer *pointer, uint32_t serial,
>          index = 3;
>          break;
>      default:
> -        index = button - BTN_LEFT + 1;
> +        /* Skip indexes 4-7: they are used for vertical and horizontal scroll.
> +           The rest of the buttons go in order: BTN_LEFT + 3 becomes 8, etc. */
> +        index = button - BTN_LEFT + 5;

tbh, I'd use 8 + button - BTN_SIDE here, that's less confusing (and is what
we do in e.g. evdev). but either way,

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

Cheers,
   Peter


More information about the wayland-devel mailing list