<xcb header="xinput" extension-xname="XInputExtension" extension-name="Input"
major-version="2" minor-version="3">
+ <import>xfixes</import>
<import>xproto</import>
<!-- ⋅⋅⋅ Types (v1.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ -->
<field type="CARD32" name="frac" />
</struct>
- <!-- ⋅⋅⋅ Types (v2.3) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ -->
-
- <typedef oldname="CARD32" newname="Barrier" />
-
<!-- ⋅⋅⋅ Requests (v1.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ -->
<!-- GetExtensionVersion -->
<list type="InputClassInfo" name="class_info">
<fieldref>num_classes</fieldref>
</list>
+ <pad align="4" />
</reply>
</request>
<struct name="DeviceTimeCoord">
<field type="TIMESTAMP" name="time" />
- <!-- Uninterpreted: list (axisvalues) of CARD32,
+ <!-- Uninterpreted: list (axisvalues) of INT32,
length is num_axes from GetDeviceMotionEvents -->
</struct>
<field type="TIMESTAMP" name="start" />
<field type="TIMESTAMP" name="stop" altenum="Time" />
<field type="CARD8" name="device_id" />
+ <pad bytes="3"/>
<reply>
<pad bytes="1" />
<field type="CARD32" name="num_events" />
<request name="UngrabDevice" opcode="14">
<field type="TIMESTAMP" name="time" altenum="Time" />
<field type="CARD8" name="device_id" />
+ <pad bytes="3" />
</request>
<!-- GrabDeviceKey -->
<field type="CARD8" name="modifier_device" />
<field type="CARD8" name="button" altenum="Grab" />
<field type="CARD8" name="grabbed_device" />
+ <pad bytes="3" />
</request>
<!-- AllowDeviceEvents -->
<enum name="DeviceInputMode">
- <item name="AsyncThisDevice" />
- <item name="SyncThisDevice" />
- <item name="ReplayThisDevice" />
- <item name="AsyncOtherDevices" />
- <item name="AsyncAll" />
- <item name="SyncAll" />
+ <item name="AsyncThisDevice"> <value>0</value> </item>
+ <item name="SyncThisDevice"> <value>1</value> </item>
+ <item name="ReplayThisDevice"> <value>2</value> </item>
+ <item name="AsyncOtherDevices"> <value>3</value> </item>
+ <item name="AsyncAll"> <value>4</value> </item>
+ <item name="SyncAll"> <value>5</value> </item>
</enum>
<request name="AllowDeviceEvents" opcode="19">
<field type="TIMESTAMP" name="time" altenum="Time" />
<field type="CARD8" name="mode" enum="DeviceInputMode" />
<field type="CARD8" name="device_id" />
+ <pad bytes="2" />
</request>
<!-- GetDeviceFocus -->
<field type="TIMESTAMP" name="time" altenum="Time" />
<field type="CARD8" name="revert_to" enum="InputFocus" />
<field type="CARD8" name="device_id" />
+ <pad bytes="2" />
</request>
<!-- GetFeedbackControl -->
<enum name="FeedbackClass">
- <item name="Keyboard" />
- <item name="Pointer" />
- <item name="String" />
- <item name="Integer" />
- <item name="Led" />
- <item name="Bell" />
+ <item name="Keyboard"> <value>0</value> </item>
+ <item name="Pointer"> <value>1</value> </item>
+ <item name="String"> <value>2</value> </item>
+ <item name="Integer"> <value>3</value> </item>
+ <item name="Led"> <value>4</value> </item>
+ <item name="Bell"> <value>5</value> </item>
</enum>
<struct name="KbdFeedbackState">
<field type="CARD32" name="mask" />
<field type="CARD8" name="device_id" />
<field type="CARD8" name="feedback_id" />
+ <pad bytes="2" />
<field type="FeedbackCtl" name="feedback" />
</request>
<field type="CARD8" name="device_id" />
<field type="KeyCode" name="first_keycode" />
<field type="CARD8" name="count" />
+ <pad bytes="1" />
<reply>
<pad bytes="1" />
<field type="CARD8" name="keysyms_per_keycode" />
<request name="SetDeviceModifierMapping" opcode="27">
<field type="CARD8" name="device_id" />
<field type="CARD8" name="keycodes_per_modifier" />
- <pad bytes="1" />
+ <pad bytes="2" />
<list type="CARD8" name="keymaps">
<op op="*">
<fieldref>keycodes_per_modifier</fieldref>
<list type="CARD8" name="map">
<fieldref>map_size</fieldref>
</list>
+ <pad align="4" />
</reply>
</request>
<field type="CARD16" name="len" />
<field type="CARD8" name="first_valuator" />
<field type="CARD8" name="num_valuators" />
+ <pad bytes="2" />
<list type="CARD32" name="resolution_values">
<fieldref>num_valuators</fieldref>
</list>
<!-- ChangeDeviceProperty -->
<enum name="PropertyFormat">
- <item name="8Bits"> <value> 8</value> </item>
+ <item name="8Bits"> <value>8</value> </item>
<item name="16Bits"> <value>16</value> </item>
<item name="32Bits"> <value>32</value> </item>
</enum>
<list type="CARD8" name="data8">
<fieldref>num_items</fieldref>
</list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="PropertyFormat">16Bits</enumref>
<list type="CARD16" name="data16">
<fieldref>num_items</fieldref>
</list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="PropertyFormat">32Bits</enumref>
<list type="CARD8" name="data8">
<fieldref>num_items</fieldref>
</list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="PropertyFormat">16Bits</enumref>
<list type="CARD16" name="data16">
<fieldref>num_items</fieldref>
</list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="PropertyFormat">32Bits</enumref>
<!-- XIQueryPointer -->
<enum name="Device">
- <item name="All" />
- <item name="AllMaster" />
+ <item name="All"> <value>0</value> </item>
+ <item name="AllMaster"> <value>1</value> </item>
</enum>
<struct name="GroupInfo">
<field type="FP1616" name="root_y" />
<field type="FP1616" name="win_x" />
<field type="FP1616" name="win_y" />
- <field type="CARD8" name="same_screen" />
+ <field type="BOOL" name="same_screen" />
<pad bytes="1" />
<field type="CARD16" name="buttons_len" />
<field type="ModifierInfo" name="mods" />
<list type="char" name="name">
<fieldref>name_len</fieldref>
</list>
+ <pad align="4" />
</struct>
<struct name="RemoveMaster">
<request name="XIChangeHierarchy" opcode="43">
<field type="CARD8" name="num_changes" />
+ <pad bytes="3" />
<list type="HierarchyChange" name="changes">
<fieldref>num_changes</fieldref>
</list>
<!-- XISelectEvents -->
+ <enum name="XIEventMask">
+ <item name="DeviceChanged"> <bit>1</bit> </item>
+ <item name="KeyPress"> <bit>2</bit> </item>
+ <item name="KeyRelease"> <bit>3</bit> </item>
+ <item name="ButtonPress"> <bit>4</bit> </item>
+ <item name="ButtonRelease"> <bit>5</bit> </item>
+ <item name="Motion"> <bit>6</bit> </item>
+ <item name="Enter"> <bit>7</bit> </item>
+ <item name="Leave"> <bit>8</bit> </item>
+ <item name="FocusIn"> <bit>9</bit> </item>
+ <item name="FocusOut"> <bit>10</bit> </item>
+ <item name="Hierarchy"> <bit>11</bit> </item>
+ <item name="Property"> <bit>12</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.1) ⋅⋅⋅ -->
+ <item name="RawKeyPress"> <bit>13</bit> </item>
+ <item name="RawKeyRelease"> <bit>14</bit> </item>
+ <item name="RawButtonPress"> <bit>15</bit> </item>
+ <item name="RawButtonRelease"> <bit>16</bit> </item>
+ <item name="RawMotion"> <bit>17</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.2) ⋅⋅⋅ -->
+ <item name="TouchBegin"> <bit>18</bit> </item>
+ <item name="TouchUpdate"> <bit>19</bit> </item>
+ <item name="TouchEnd"> <bit>20</bit> </item>
+ <item name="TouchOwnership"> <bit>21</bit> </item>
+ <item name="RawTouchBegin"> <bit>22</bit> </item>
+ <item name="RawTouchUpdate"> <bit>23</bit> </item>
+ <item name="RawTouchEnd"> <bit>24</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.3) ⋅⋅⋅ -->
+ <item name="BarrierHit"> <bit>25</bit> </item>
+ <item name="BarrierLeave"> <bit>26</bit> </item>
+ </enum>
+
<struct name="EventMask">
<field type="DeviceId" name="deviceid" altenum="Device" />
<field type="CARD16" name="mask_len" />
- <list type="CARD32" name="mask"> <!-- set of EventMaskBit -->
+ <list type="CARD32" name="mask" mask="XIEventMask">
<fieldref>mask_len</fieldref>
</list>
</struct>
<!-- XIGrabDevice -->
<enum name="GrabOwner">
- <item name="NoOwner" />
- <item name="Owner" />
+ <item name="NoOwner"> <value>0</value> </item>
+ <item name="Owner"> <value>1</value> </item>
</enum>
<request name="XIGrabDevice" opcode="51">
<!-- XIAllowEvents -->
<enum name="EventMode">
- <item name="AsyncDevice" />
- <item name="SyncDevice" />
- <item name="ReplayDevice" />
- <item name="AsyncPairedDevice" />
- <item name="AsyncPair" />
- <item name="SyncPair" />
- <item name="AcceptTouch" />
- <item name="RejectTouch" />
+ <item name="AsyncDevice"> <value>0</value> </item>
+ <item name="SyncDevice"> <value>1</value> </item>
+ <item name="ReplayDevice"> <value>2</value> </item>
+ <item name="AsyncPairedDevice"> <value>3</value> </item>
+ <item name="AsyncPair"> <value>4</value> </item>
+ <item name="SyncPair"> <value>5</value> </item>
+ <item name="AcceptTouch"> <value>6</value> </item>
+ <item name="RejectTouch"> <value>7</value> </item>
</enum>
<request name="XIAllowEvents" opcode="53">
<!-- XIPassiveGrabDevice -->
<enum name="GrabMode22">
- <item name="Sync" />
- <item name="Async" />
- <item name="Touch" />
+ <item name="Sync"> <value>0</value> </item>
+ <item name="Async"> <value>1</value> </item>
+ <item name="Touch"> <value>2</value> </item>
</enum>
<enum name="GrabType">
- <item name="Button" />
- <item name="Keycode" />
- <item name="Enter" />
- <item name="FocusIn" />
- <item name="TouchBegin" />
+ <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>
</enum>
<enum name="ModifierMask">
<list type="CARD8" name="data8">
<fieldref>num_items</fieldref>
</list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="PropertyFormat">16Bits</enumref>
<list type="CARD16" name="data16">
<fieldref>num_items</fieldref>
</list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="PropertyFormat">32Bits</enumref>
<struct name="BarrierReleasePointerInfo">
<field type="DeviceId" name="deviceid" />
<pad bytes="2" />
- <field type="Barrier" name="barrier" />
+ <field type="BARRIER" name="barrier" />
<field type="CARD32" name="eventid" />
</struct>
<eventcopy name="DeviceMotionNotify" number="5" ref="DeviceKeyPress" />
<event name="DeviceFocusIn" number="6">
- <field type="BYTE" name="detail" enum="NotifyDetail" />
+ <field type="BYTE" name="detail" enum="xproto:NotifyDetail" />
<field type="TIMESTAMP" name="time" />
<field type="WINDOW" name="window" />
- <field type="BYTE" name="mode" enum="NotifyMode" />
+ <field type="BYTE" name="mode" enum="xproto:NotifyMode" />
<field type="CARD8" name="device_id" />
<pad bytes="18" />
</event>
<!-- ⋅⋅⋅ Events (v1.4) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ -->
<enum name="DeviceChange">
- <item name="Added" />
- <item name="Removed" />
- <item name="Enabled" />
- <item name="Disabled" />
- <item name="Unrecoverable" />
- <item name="ControlChanged" />
+ <item name="Added"> <value>0</value> </item>
+ <item name="Removed"> <value>1</value> </item>
+ <item name="Enabled"> <value>2</value> </item>
+ <item name="Disabled"> <value>3</value> </item>
+ <item name="Unrecoverable"> <value>4</value> </item>
+ <item name="ControlChanged"> <value>5</value> </item>
</enum>
<event name="DevicePresenceNotify" number="15">
<eventcopy name="Motion" number="6" ref="ButtonPress" />
<enum name="NotifyMode">
- <item name="Normal" />
- <item name="Grab" />
- <item name="Ungrab" />
- <item name="WhileGrabbed" />
- <item name="PassiveGrab" />
- <item name="PassiveUngrab" />
+ <item name="Normal"> <value>0</value> </item>
+ <item name="Grab"> <value>1</value> </item>
+ <item name="Ungrab"> <value>2</value> </item>
+ <item name="WhileGrabbed"> <value>3</value> </item>
+ <item name="PassiveGrab"> <value>4</value> </item>
+ <item name="PassiveUngrab"> <value>5</value> </item>
</enum>
<enum name="NotifyDetail">
- <item name="Ancestor" />
- <item name="Virtual" />
- <item name="Inferior" />
- <item name="Nonlinear" />
- <item name="NonlinearVirtual" />
- <item name="Pointer" />
- <item name="PointerRoot" />
- <item name="None" />
+ <item name="Ancestor"> <value>0</value> </item>
+ <item name="Virtual"> <value>1</value> </item>
+ <item name="Inferior"> <value>2</value> </item>
+ <item name="Nonlinear"> <value>3</value> </item>
+ <item name="NonlinearVirtual"> <value>4</value> </item>
+ <item name="Pointer"> <value>5</value> </item>
+ <item name="PointerRoot"> <value>6</value> </item>
+ <item name="None"> <value>7</value> </item>
</enum>
<event name="Enter" number="7" xge="true">
<field type="TIMESTAMP" name="time" altenum="Time" />
<!-- event specific fields -->
<field type="DeviceId" name="sourceid" altenum="Device" />
- <field type="CARD8" name="mode" enum="NotifyMode" />
- <field type="CARD8" name="detail" enum="NotifyDetail" />
+ <field type="CARD8" name="mode" enum="xinput:NotifyMode" />
+ <field type="CARD8" name="detail" enum="xinput:NotifyDetail" />
<field type="WINDOW" name="root" />
<field type="WINDOW" name="event" />
<field type="WINDOW" name="child" />
</event>
<enum name="PropertyFlag">
- <item name="Deleted" />
- <item name="Created" />
- <item name="Modified" />
+ <item name="Deleted"> <value>0</value> </item>
+ <item name="Created"> <value>1</value> </item>
+ <item name="Modified"> <value>2</value> </item>
</enum>
<event name="Property" number="12" xge="true">
<enum name="TouchOwnershipFlags">
<!-- XXX: Remove this enum? Currently, no flag is defined. -->
- <item name="None" />
+ <item name="None"> <value>0</value> </item>
</enum>
<event name="TouchOwnership" number="21" xge="true">
<field type="CARD32" name="eventid" />
<field type="WINDOW" name="root" />
<field type="WINDOW" name="event" />
- <field type="Barrier" name="barrier" />
+ <field type="BARRIER" name="barrier" />
<!-- 32 byte boundary -->
<field type="CARD32" name="dtime" />
<field type="CARD32" name="flags" />