summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2017-01-24 09:56:39 +1000
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2017-01-24 12:00:19 +0200
commit2f72d0a8a82dac8c961cb9b4b509208b84322937 (patch)
tree51dfa8d98785b6646448c9b14efaef53b902cc04
parentf8ab47690c03245da4938cbab7a4ba6bcb1bebe0 (diff)
protocol: add axis_source.wheel_tilt
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@who-t.net> Reviewed-by: Jonas Ã…dahl <jadahl@gmail.com> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
-rw-r--r--protocol/wayland.xml10
-rw-r--r--tests/data/example-client.h16
-rw-r--r--tests/data/example-server.h13
-rw-r--r--tests/data/example.xml8
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;