[PATCH libinput] Add libinput_device_pointer_has_button over the plain has_button

Peter Hutterer peter.hutterer at who-t.net
Thu Feb 12 20:43:42 PST 2015


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 at who-t.net>
---
 src/libinput.c   | 10 ++++++++--
 src/libinput.h   | 10 +++++++++-
 src/libinput.sym |  2 ++
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/libinput.c b/src/libinput.c
index 81862d5..b903caa 100644
--- a/src/libinput.c
+++ b/src/libinput.c
@@ -1364,11 +1364,17 @@ libinput_device_get_size(struct libinput_device *device,
 }
 
 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);
 }
 
+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_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,
 					 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;
 
 	if ((libinput_device_config_scroll_get_methods(device) &
diff --git a/src/libinput.h b/src/libinput.h
index 857b3fa..0fdca7b 100644
--- a/src/libinput.h
+++ b/src/libinput.h
@@ -1661,7 +1661,15 @@ libinput_device_get_size(struct libinput_device *device,
  * on error.
  */
 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
diff --git a/src/libinput.sym b/src/libinput.sym
index cf13789..644e910 100644
--- a/src/libinput.sym
+++ b/src/libinput.sym
@@ -133,4 +133,6 @@ LIBINPUT_0.11.0 {
 	libinput_device_group_ref;
 	libinput_device_group_set_user_data;
 	libinput_device_group_unref;
+
+	libinput_device_pointer_has_button;
 } LIBINPUT_0.9.0;
-- 
2.1.0



More information about the wayland-devel mailing list