xinput: Add XI v2.4

XInput 2.4 introduces touchpad gesture support which includes 6 new
events: Gesture{Pinch,Swipe}{Begin,Update,End}.
This commit is contained in:
Povilas Kanapickas 2021-05-17 15:01:29 +03:00
parent f0db8b7d31
commit 151ee69847

View file

@ -33,7 +33,7 @@ authorization from the authors.
-->
<xcb header="xinput" extension-xname="XInputExtension" extension-name="Input"
major-version="2" minor-version="3">
major-version="2" minor-version="4">
<import>xfixes</import>
<import>xproto</import>
@ -1601,6 +1601,7 @@ authorization from the authors.
<item name="Valuator"> <value>2</value> </item>
<item name="Scroll"> <value>3</value> </item>
<item name="Touch"> <value>8</value> </item>
<item name="Gesture"> <value>9</value> </item>
</enum>
<enum name="DeviceType">
@ -1674,6 +1675,14 @@ authorization from the authors.
<field type="CARD8" name="num_touches" />
</struct>
<struct name="GestureClass">
<field type="CARD16" name="type" enum="DeviceClassType" />
<field type="CARD16" name="len" />
<field type="DeviceId" name="sourceid" />
<field type="CARD8" name="num_touches" />
<pad bytes="1" />
</struct>
<struct name="ValuatorClass">
<field type="CARD16" name="type" enum="DeviceClassType" />
<field type="CARD16" name="len" />
@ -1752,6 +1761,11 @@ authorization from the authors.
<field type="CARD8" name="mode" enum="TouchMode" />
<field type="CARD8" name="num_touches" />
</case>
<case name="gesture">
<enumref ref="DeviceClassType">Gesture</enumref>
<field type="CARD8" name="num_touches" />
<pad bytes="1" />
</case>
</switch>
</struct>
@ -1872,11 +1886,13 @@ authorization from the authors.
</enum>
<enum name="GrabType">
<item name="Button"> <value>0</value> </item>
<item name="Keycode"> <value>1</value> </item>
<item name="Enter"> <value>2</value> </item>
<item name="FocusIn"> <value>3</value> </item>
<item name="TouchBegin"> <value>4</value> </item>
<item name="Button"> <value>0</value> </item>
<item name="Keycode"> <value>1</value> </item>
<item name="Enter"> <value>2</value> </item>
<item name="FocusIn"> <value>3</value> </item>
<item name="TouchBegin"> <value>4</value> </item>
<item name="GesturePinchBegin"> <value>5</value> </item>
<item name="GestureSwipeBegin"> <value>6</value> </item>
</enum>
<enum name="ModifierMask">
@ -2610,6 +2626,72 @@ authorization from the authors.
<eventcopy name="BarrierLeave" number="26" ref="BarrierHit" />
<!-- ⋅⋅⋅ Events (v2.4) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ -->
<enum name="GesturePinchEventFlags">
<item name="GesturePinchCancelled"> <bit>0</bit> </item>
</enum>
<event name="GesturePinchBegin" number="27" xge="true">
<field type="DeviceId" name="deviceid" altenum="Device" />
<field type="TIMESTAMP" name="time" altenum="Time" />
<!-- event specific fields -->
<field type="CARD32" name="detail" />
<field type="WINDOW" name="root" />
<field type="WINDOW" name="event" />
<field type="WINDOW" name="child" />
<!-- 32 byte boundary -->
<field type="FP1616" name="root_x" />
<field type="FP1616" name="root_y" />
<field type="FP1616" name="event_x" />
<field type="FP1616" name="event_y" />
<field type="FP1616" name="delta_x" />
<field type="FP1616" name="delta_y" />
<field type="FP1616" name="delta_unaccel_x" />
<field type="FP1616" name="delta_unaccel_y" />
<field type="FP1616" name="scale" />
<field type="FP1616" name="delta_angle" />
<field type="DeviceId" name="sourceid" altenum="Device" />
<pad bytes="2" />
<field type="ModifierInfo" name="mods" />
<field type="GroupInfo" name="group" />
<field type="CARD32" name="flags" mask="GesturePinchEventFlags" />
</event>
<eventcopy name="GesturePinchUpdate" number="28" ref="GesturePinchBegin" />
<eventcopy name="GesturePinchEnd" number="29" ref="GesturePinchBegin" />
<enum name="GestureSwipeEventFlags">
<item name="GestureSwipeCancelled"> <bit>0</bit> </item>
</enum>
<event name="GestureSwipeBegin" number="30" xge="true">
<field type="DeviceId" name="deviceid" altenum="Device" />
<field type="TIMESTAMP" name="time" altenum="Time" />
<!-- event specific fields -->
<field type="CARD32" name="detail" />
<field type="WINDOW" name="root" />
<field type="WINDOW" name="event" />
<field type="WINDOW" name="child" />
<!-- 32 byte boundary -->
<field type="FP1616" name="root_x" />
<field type="FP1616" name="root_y" />
<field type="FP1616" name="event_x" />
<field type="FP1616" name="event_y" />
<field type="FP1616" name="delta_x" />
<field type="FP1616" name="delta_y" />
<field type="FP1616" name="delta_unaccel_x" />
<field type="FP1616" name="delta_unaccel_y" />
<field type="DeviceId" name="sourceid" altenum="Device" />
<pad bytes="2" />
<field type="ModifierInfo" name="mods" />
<field type="GroupInfo" name="group" />
<field type="CARD32" name="flags" mask="GestureSwipeEventFlags" />
</event>
<eventcopy name="GestureSwipeUpdate" number="31" ref="GestureSwipeBegin" />
<eventcopy name="GestureSwipeEnd" number="32" ref="GestureSwipeBegin" />
<!-- ⋅⋅⋅ Requests that depend on events ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ -->
<!-- SendExtensionEvent -->