From f9e22cefcb9684bf495ada3ec4b0231ab2dc6cff Mon Sep 17 00:00:00 2001 From: Dima Ryazanov Date: Mon, 22 Dec 2014 11:35:29 -0800 Subject: [PATCH] Fix "Back", "Forward", and other special mouse buttons in XWayland. Currently, the indexes are off by 4 because of the scroll buttons. Signed-off-by: Dima Ryazanov Reviewed-by: Peter Hutterer Signed-off-by: Keith Packard --- 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 b8c543ce4..5e204189f 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_SIDE becomes 8, etc. */ + index = 8 + button - BTN_SIDE; break; }