Add libinput_device_pointer_has_button over the plain has_button

If a device has multiple capabilities, has_button is imprecise. A device with
tablet and pointer capability for example may have BTN_LEFT on the pointer
interface but not on the tablet interface.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2015-02-13 14:36:56 +10:00
parent a9f216ab47
commit 761baeb6e6
3 changed files with 19 additions and 3 deletions

View file

@ -1364,11 +1364,17 @@ libinput_device_get_size(struct libinput_device *device,
} }
LIBINPUT_EXPORT int LIBINPUT_EXPORT int
libinput_device_has_button(struct libinput_device *device, uint32_t code) libinput_device_pointer_has_button(struct libinput_device *device, uint32_t code)
{ {
return evdev_device_has_button((struct evdev_device *)device, code); return evdev_device_has_button((struct evdev_device *)device, code);
} }
LIBINPUT_EXPORT int
libinput_device_has_button(struct libinput_device *device, uint32_t code)
{
return libinput_device_pointer_has_button(device, code);
}
LIBINPUT_EXPORT struct libinput_event * LIBINPUT_EXPORT struct libinput_event *
libinput_event_device_notify_get_base_event(struct libinput_event_device_notify *event) libinput_event_device_notify_get_base_event(struct libinput_event_device_notify *event)
{ {
@ -1805,7 +1811,7 @@ LIBINPUT_EXPORT enum libinput_config_status
libinput_device_config_scroll_set_button(struct libinput_device *device, libinput_device_config_scroll_set_button(struct libinput_device *device,
uint32_t button) uint32_t button)
{ {
if (button && !libinput_device_has_button(device, button)) if (button && !libinput_device_pointer_has_button(device, button))
return LIBINPUT_CONFIG_STATUS_INVALID; return LIBINPUT_CONFIG_STATUS_INVALID;
if ((libinput_device_config_scroll_get_methods(device) & if ((libinput_device_config_scroll_get_methods(device) &

View file

@ -1661,7 +1661,15 @@ libinput_device_get_size(struct libinput_device *device,
* on error. * on error.
*/ */
int int
libinput_device_has_button(struct libinput_device *device, uint32_t code); libinput_device_pointer_has_button(struct libinput_device *device, uint32_t code);
/**
* @ingroup device
*
* @deprecated Use libinput_device_pointer_has_button() instead.
*/
int
libinput_device_has_button(struct libinput_device *device, uint32_t code) LIBINPUT_ATTRIBUTE_DEPRECATED;
/** /**
* @ingroup device * @ingroup device

View file

@ -133,4 +133,6 @@ LIBINPUT_0.11.0 {
libinput_device_group_ref; libinput_device_group_ref;
libinput_device_group_set_user_data; libinput_device_group_set_user_data;
libinput_device_group_unref; libinput_device_group_unref;
libinput_device_pointer_has_button;
} LIBINPUT_0.9.0; } LIBINPUT_0.9.0;