x11: Check wacom button flags to determine whether button is mode switch

Checking the leds is not really accurate, since some devices have mode
switch buttons without leds. Check in the button flags whether they are
mode switch buttons for any of ring/ring2/strip/strip2, and return the
appropriate group.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/952
This commit is contained in:
Carlos Garnacho 2019-11-28 22:50:36 +01:00 committed by Carlos Garnacho
parent c843102eec
commit 6f4c7d66a4

View File

@ -151,14 +151,25 @@ meta_input_device_x11_get_button_group (ClutterInputDevice *device,
if (device_xi2->wacom_device) if (device_xi2->wacom_device)
{ {
WacomButtonFlags flags;
if (button >= libwacom_get_num_buttons (device_xi2->wacom_device)) if (button >= libwacom_get_num_buttons (device_xi2->wacom_device))
return -1; return -1;
return libwacom_get_button_led_group (device_xi2->wacom_device, flags = libwacom_get_button_flag (device_xi2->wacom_device,
'A' + button); 'A' + button);
if (flags &
(WACOM_BUTTON_RING_MODESWITCH |
WACOM_BUTTON_TOUCHSTRIP_MODESWITCH))
return 0;
if (flags &
(WACOM_BUTTON_RING2_MODESWITCH |
WACOM_BUTTON_TOUCHSTRIP2_MODESWITCH))
return 1;
} }
else
return -1; return -1;
} }
#endif #endif