[PATCH libinput] tablet: allow the various get_<axis> on tablet button events

Peter Hutterer peter.hutterer at who-t.net
Wed Jan 13 20:22:25 PST 2016


There's no reason to prevent this for button events. Unlike the pointer
which is a relative device a tablet is (usually) a device with a lot of state.
Caller code that handles axes is likely shared between the various events,
treating button events separately here doesn't get us any benefit.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/libinput.c | 12 ++++++++++++
 src/libinput.h | 27 ++++++++++++++++++---------
 2 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/src/libinput.c b/src/libinput.c
index d73637a..01e171d 100644
--- a/src/libinput.c
+++ b/src/libinput.c
@@ -921,6 +921,7 @@ libinput_event_tablet_tool_x_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -936,6 +937,7 @@ libinput_event_tablet_tool_y_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -951,6 +953,7 @@ libinput_event_tablet_tool_pressure_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -966,6 +969,7 @@ libinput_event_tablet_tool_distance_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -981,6 +985,7 @@ libinput_event_tablet_tool_tilt_x_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -996,6 +1001,7 @@ libinput_event_tablet_tool_tilt_y_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -1011,6 +1017,7 @@ libinput_event_tablet_tool_rotation_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -1026,6 +1033,7 @@ libinput_event_tablet_tool_slider_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -1041,6 +1049,7 @@ libinput_event_tablet_tool_wheel_has_changed(
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return bit_is_set(event->changed_axes,
@@ -1059,6 +1068,7 @@ libinput_event_tablet_tool_get_axis_value(struct libinput_event_tablet_tool *eve
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	switch(axis) {
@@ -1177,6 +1187,7 @@ libinput_event_tablet_tool_get_x_transformed(struct libinput_event_tablet_tool *
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return evdev_device_transform_x(device,
@@ -1196,6 +1207,7 @@ libinput_event_tablet_tool_get_y_transformed(struct libinput_event_tablet_tool *
 			   0,
 			   LIBINPUT_EVENT_TABLET_TOOL_AXIS,
 			   LIBINPUT_EVENT_TABLET_TOOL_TIP,
+			   LIBINPUT_EVENT_TABLET_TOOL_BUTTON,
 			   LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
 
 	return evdev_device_transform_y(device,
diff --git a/src/libinput.h b/src/libinput.h
index ab57b4c..287f440 100644
--- a/src/libinput.h
+++ b/src/libinput.h
@@ -1351,7 +1351,8 @@ libinput_event_tablet_tool_get_base_event(struct libinput_event_tablet_tool *eve
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1371,7 +1372,8 @@ libinput_event_tablet_tool_x_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1391,7 +1393,8 @@ libinput_event_tablet_tool_y_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1413,7 +1416,8 @@ libinput_event_tablet_tool_pressure_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1433,7 +1437,8 @@ libinput_event_tablet_tool_distance_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1453,7 +1458,8 @@ libinput_event_tablet_tool_tilt_x_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1472,7 +1478,8 @@ libinput_event_tablet_tool_tilt_y_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1491,7 +1498,8 @@ libinput_event_tablet_tool_rotation_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
@@ -1510,7 +1518,8 @@ libinput_event_tablet_tool_slider_has_changed(
  * @note It is an application bug to call this function for events other
  * than @ref LIBINPUT_EVENT_TABLET_TOOL_AXIS, @ref
  * LIBINPUT_EVENT_TABLET_TOOL_TIP, or @ref
- * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY.
+ * LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, or @ref
+ * LIBINPUT_EVENT_TABLET_TOOL_BUTTON.
  *
  * @param event The libinput tablet event
  * @return 1 if the axis was updated or 0 otherwise
-- 
2.5.0



More information about the wayland-devel mailing list