summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPovilas Kanapickas <povilas@radix.lt>2021-05-17 15:01:29 +0300
committerPovilas Kanapickas <povilas@radix.lt>2021-09-22 14:53:06 +0300
commit151ee69847c706e2b9d38c82e20534910f140b55 (patch)
tree7aa35ed0ecc556bc1ded33b3ea4d768756dccca1 /src
parentf0db8b7d31a379fe26f6cc592be997c8ce5f0b2d (diff)
downloadxcb-proto-151ee69847c706e2b9d38c82e20534910f140b55.tar.gz
xinput: Add XI v2.4
XInput 2.4 introduces touchpad gesture support which includes 6 new events: Gesture{Pinch,Swipe}{Begin,Update,End}.
Diffstat (limited to 'src')
-rw-r--r--src/xinput.xml94
1 files changed, 88 insertions, 6 deletions
diff --git a/src/xinput.xml b/src/xinput.xml
index 3610645..7f4074e 100644
--- a/src/xinput.xml
+++ b/src/xinput.xml
@@ -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 -->