protocol: add the wl_pointer.axis_value120 events
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 31 Mar 2020 03:47:04 +0000 (13:47 +1000)
committerSimon Ser <contact@emersion.fr>
Mon, 28 Mar 2022 17:31:27 +0000 (17:31 +0000)
These events are for high-resolution wheels. Each logical wheel click
represents an axis value120 value of 120, fractions of a wheel click an
integer fraction thereof. The new event replaces
wl_pointer.axis_discrete for wl_pointer versions 8 and above.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
protocol/wayland.xml

index 92e2432..4389262 100644 (file)
     </request>
    </interface>
 
-  <interface name="wl_seat" version="7">
+  <interface name="wl_seat" version="8">
     <description summary="group of input devices">
       A seat is a group of keyboards, pointer and touch devices. This
       object is published as a global during start up, or when such a
 
   </interface>
 
-  <interface name="wl_pointer" version="7">
+  <interface name="wl_pointer" version="8">
     <description summary="pointer input device">
       The wl_pointer interface represents one or more input devices,
       such as mice, which control the pointer location and pointer_focus
        This event carries the axis value of the wl_pointer.axis event in
        discrete steps (e.g. mouse wheel clicks).
 
+       This event is deprecated with wl_pointer version 8 - this event is not
+       sent to clients supporting version 8 or later.
+
        This event does not occur on its own, it is coupled with a
        wl_pointer.axis event that represents this axis value on a
        continuous scale. The protocol guarantees that each axis_discrete
       <arg name="axis" type="uint" enum="axis" summary="axis type"/>
       <arg name="discrete" type="int" summary="number of steps"/>
     </event>
+
+    <event name="axis_value120" since="8">
+      <description summary="axis high-resolution scroll event">
+       Discrete high-resolution scroll information.
+
+       This event carries high-resolution wheel scroll information,
+       with each multiple of 120 representing one logical scroll step
+       (a wheel detent). For example, an axis_value120 of 30 is one quarter of
+       a logical scroll step in the positive direction, a value120 of
+       -240 are two logical scroll steps in the negative direction within the
+       same hardware event.
+       Clients that rely on discrete scrolling should accumulate the
+       value120 to multiples of 120 before processing the event.
+
+       The value120 must not be zero.
+
+       This event replaces the wl_pointer.axis_discrete event in clients
+       supporting wl_pointer version 8 or later.
+
+       Where a wl_pointer.axis_source event occurs in the same
+       wl_pointer.frame, the axis source applies to this event.
+
+       The order of wl_pointer.axis_value120 and wl_pointer.axis_source is
+       not guaranteed.
+      </description>
+      <arg name="axis" type="uint" enum="axis" summary="axis type"/>
+      <arg name="value120" type="int" summary="scroll distance as fraction of 120"/>
+    </event>
   </interface>
 
-  <interface name="wl_keyboard" version="7">
+  <interface name="wl_keyboard" version="8">
     <description summary="keyboard input device">
       The wl_keyboard interface represents one or more keyboards
       associated with a seat.
     </event>
   </interface>
 
-  <interface name="wl_touch" version="7">
+  <interface name="wl_touch" version="8">
     <description summary="touchscreen input device">
       The wl_touch interface represents a touchscreen
       associated with a seat.