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:
parent
c843102eec
commit
6f4c7d66a4
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user