[PATCH v3 wayland 4/4] protocol: add axis_source.wheel_tilt

Peter Hutterer peter.hutterer at who-t.net
Mon Jan 23 23:56:39 UTC 2017


Unlike a wheel rotation, a wheel tilt is a discrete-only axis. Wheel rotations
are mapped to degrees in libinput but that that does not apply to wheel tilt
axes where there is no physical equivalent.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Jonas Ã…dahl <jadahl at gmail.com>
Acked-by: Daniel Stone <daniels at collabora.com>
Reviewed-by: Daniel Stone <daniels at collabora.com>
Reviewed-by: Yong Bakos <ybakos at humanoriented.com>
---
No changes to v2

 protocol/wayland.xml        | 10 ++++++++--
 tests/data/example-client.h | 16 +++++++++++++++-
 tests/data/example-server.h | 13 +++++++++++++
 tests/data/example.xml      |  8 +++++++-
 4 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 098f286..29b63be 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -1986,10 +1986,15 @@
 	finger. One example for this source is button-based scrolling where
 	the vertical motion of a device is converted to scroll events while
 	a button is held down.
+
+	The "wheel tilt" axis source indicates that the actual device is a
+	wheel but the scroll event is not caused by a rotation but a
+	(usually sideways) tilt of the wheel.
       </description>
-      <entry name="wheel" value="0" summary="a physical wheel" />
+      <entry name="wheel" value="0" summary="a physical wheel rotation" />
       <entry name="finger" value="1" summary="finger on a touch surface" />
       <entry name="continuous" value="2" summary="continuous coordinate space"/>
+      <entry name="wheel_tilt" value="3" summary="a physical wheel tilt" since="6"/>
     </enum>
 
     <event name="axis_source" since="5">
@@ -2004,7 +2009,8 @@
 	wl_pointer.axis_source.finger, a wl_pointer.axis_stop event will be
 	sent when the user lifts the finger off the device.
 
-	If the source is wl_pointer axis_source.wheel or
+	If the source is wl_pointer.axis_source.wheel,
+	wl_pointer.axis_source.wheel_tilt or
 	wl_pointer.axis_source.continuous, a wl_pointer.axis_stop event may
 	or may not be sent. Whether a compositor sends an axis_stop event
 	for these sources is hardware-specific and implementation-dependent;
diff --git a/tests/data/example-client.h b/tests/data/example-client.h
index 857aacf..c40e361 100644
--- a/tests/data/example-client.h
+++ b/tests/data/example-client.h
@@ -4035,6 +4035,10 @@ enum wl_pointer_axis {
  * finger. One example for this source is button-based scrolling where
  * the vertical motion of a device is converted to scroll events while
  * a button is held down.
+ *
+ * The "wheel tilt" axis source indicates that the actual device is a
+ * wheel but the scroll event is not caused by a rotation but a
+ * (usually sideways) tilt of the wheel.
  */
 enum wl_pointer_axis_source {
 	/**
@@ -4049,7 +4053,16 @@ enum wl_pointer_axis_source {
 	 * continuous coordinate space
 	 */
 	WL_POINTER_AXIS_SOURCE_CONTINUOUS = 2,
+	/**
+	 * a physical wheel tilt
+	 * @since 6
+	 */
+	WL_POINTER_AXIS_SOURCE_WHEEL_TILT = 3,
 };
+/**
+ * @ingroup iface_wl_pointer
+ */
+#define WL_POINTER_AXIS_SOURCE_WHEEL_TILT_SINCE_VERSION 6
 #endif /* WL_POINTER_AXIS_SOURCE_ENUM */
 
 /**
@@ -4216,7 +4229,8 @@ struct wl_pointer_listener {
 	 * is wl_pointer.axis_source.finger, a wl_pointer.axis_stop event
 	 * will be sent when the user lifts the finger off the device.
 	 *
-	 * If the source is wl_pointer axis_source.wheel or
+	 * If the source is wl_pointer.axis_source.wheel,
+	 * wl_pointer.axis_source.wheel_tilt or
 	 * wl_pointer.axis_source.continuous, a wl_pointer.axis_stop event
 	 * may or may not be sent. Whether a compositor sends an axis_stop
 	 * event for these sources is hardware-specific and
diff --git a/tests/data/example-server.h b/tests/data/example-server.h
index f22f70f..adfc973 100644
--- a/tests/data/example-server.h
+++ b/tests/data/example-server.h
@@ -3244,6 +3244,10 @@ enum wl_pointer_axis {
  * finger. One example for this source is button-based scrolling where
  * the vertical motion of a device is converted to scroll events while
  * a button is held down.
+ *
+ * The "wheel tilt" axis source indicates that the actual device is a
+ * wheel but the scroll event is not caused by a rotation but a
+ * (usually sideways) tilt of the wheel.
  */
 enum wl_pointer_axis_source {
 	/**
@@ -3258,7 +3262,16 @@ enum wl_pointer_axis_source {
 	 * continuous coordinate space
 	 */
 	WL_POINTER_AXIS_SOURCE_CONTINUOUS = 2,
+	/**
+	 * a physical wheel tilt
+	 * @since 6
+	 */
+	WL_POINTER_AXIS_SOURCE_WHEEL_TILT = 3,
 };
+/**
+ * @ingroup iface_wl_pointer
+ */
+#define WL_POINTER_AXIS_SOURCE_WHEEL_TILT_SINCE_VERSION 6
 #endif /* WL_POINTER_AXIS_SOURCE_ENUM */
 
 /**
diff --git a/tests/data/example.xml b/tests/data/example.xml
index 22dcffd..29b63be 100644
--- a/tests/data/example.xml
+++ b/tests/data/example.xml
@@ -1986,10 +1986,15 @@
 	finger. One example for this source is button-based scrolling where
 	the vertical motion of a device is converted to scroll events while
 	a button is held down.
+
+	The "wheel tilt" axis source indicates that the actual device is a
+	wheel but the scroll event is not caused by a rotation but a
+	(usually sideways) tilt of the wheel.
       </description>
       <entry name="wheel" value="0" summary="a physical wheel rotation" />
       <entry name="finger" value="1" summary="finger on a touch surface" />
       <entry name="continuous" value="2" summary="continuous coordinate space"/>
+      <entry name="wheel_tilt" value="3" summary="a physical wheel tilt" since="6"/>
     </enum>
 
     <event name="axis_source" since="5">
@@ -2004,7 +2009,8 @@
 	wl_pointer.axis_source.finger, a wl_pointer.axis_stop event will be
 	sent when the user lifts the finger off the device.
 
-	If the source is wl_pointer axis_source.wheel or
+	If the source is wl_pointer.axis_source.wheel,
+	wl_pointer.axis_source.wheel_tilt or
 	wl_pointer.axis_source.continuous, a wl_pointer.axis_stop event may
 	or may not be sent. Whether a compositor sends an axis_stop event
 	for these sources is hardware-specific and implementation-dependent;
-- 
2.9.3



More information about the wayland-devel mailing list