xwayland: Correct off-by-one error in tablet button numbering

The 'tablet_tool_frame' function treats the button masks as though they
are zero-indexed, but 'tablet_tool_button_state' treats them as one-
indexed. The result is that an e.g. middle click event recieved from
Wayland will be sent from the X server as a right-click instead.

Fixes: 773b04748d ("xwayland: handle button events after motion events")
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Jason Gerecke 2017-06-09 16:02:06 -07:00 committed by Peter Hutterer
parent d5e2f271ad
commit fbc9814975

View File

@ -1620,9 +1620,9 @@ tablet_tool_button_state(void *data, struct zwp_tablet_tool_v2 *tool,
BUG_RETURN(xbtn >= 8 * sizeof(*mask));
if (state)
SetBit(mask, xbtn);
SetBit(mask, xbtn - 1);
else
ClearBit(mask, xbtn);
ClearBit(mask, xbtn - 1);
xwl_seat->xwl_screen->serial = serial;
}