<item name="Proximity"> <value>4</value> </item>
<item name="Focus"> <value>5</value> </item>
<item name="Other"> <value>6</value> </item>
+ <!--
+ value Attach=7 is still contained in XI.h as "#define AttachClass"
+ but it was never transmitted over the protocol.
+ (It was used to tag a fake class created by libXi).
+
+ Even the creation of that fake class has been dropped
+ from libXi in 2009 by the following change:
+ http://cgit.freedesktop.org/xorg/lib/libXi/commit/?id=62858c426e6de1b99df660251737233afd335302
+
+ <item name="Attach"> <value>7</value> </item>
+ -->
</enum>
<enum name="ValuatorMode">
<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" />
<pad bytes="3" />
<reply>
<pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
+ <!-- only the following GrabStatus-values are valid here:
+ "Success", "AlreadyGrabbed", and "Frozen"
+ -->
+ <field type="CARD8" name="status" enum="GrabStatus" />
<pad bytes="23" />
</reply>
</request>
<pad bytes="1" />
<reply>
<pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
+ <!-- only the following GrabStatus-values are valid here:
+ "Success", "AlreadyGrabbed", and "Frozen"
+ -->
+ <field type="CARD8" name="status" enum="GrabStatus" />
<pad bytes="23" />
</reply>
</request>
<!-- GrabDeviceKey -->
+ <enum name="ModifierDevice">
+ <item name="UseXKeyboard"><value>255</value></item> <!-- 0xff -->
+ </enum>
+
<request name="GrabDeviceKey" opcode="15">
<field type="WINDOW" name="grab_window" />
<field type="CARD16" name="num_classes" />
<field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD8" name="grabbed_device" />
<field type="CARD8" name="key" altenum="Grab" />
<field type="CARD8" name="this_device_mode" enum="GrabMode" />
<request name="UngrabDeviceKey" opcode="16">
<field type="WINDOW" name="grabWindow" />
<field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD8" name="key" altenum="Grab" />
<field type="CARD8" name="grabbed_device" />
</request>
<request name="GrabDeviceButton" opcode="17">
<field type="WINDOW" name="grab_window" />
<field type="CARD8" name="grabbed_device" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD16" name="num_classes" />
<field type="CARD16" name="modifiers" mask="ModMask" />
<field type="CARD8" name="this_device_mode" enum="GrabMode" />
<field type="CARD8" name="other_device_mode" enum="GrabMode" />
<field type="CARD8" name="button" altenum="Grab" />
- <field type="CARD8" name="owner_events" />
+ <field type="BOOL" name="owner_events" />
<pad bytes="2" />
<list type="EventClass" name="classes">
<fieldref>num_classes</fieldref>
<request name="UngrabDeviceButton" opcode="18">
<field type="WINDOW" name="grab_window" />
<field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD8" name="button" altenum="Grab" />
<field type="CARD8" name="grabbed_device" />
<pad bytes="3" />
</list>
</struct>
+ <enum name="ChangeFeedbackControlMask">
+ <item name="KeyClickPercent"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="Percent"> <bit>1</bit> </item> <!-- 0x02 -->
+ <item name="Pitch"> <bit>2</bit> </item> <!-- 0x04 -->
+ <item name="Duration"> <bit>3</bit> </item> <!-- 0x08 -->
+ <item name="Led"> <bit>4</bit> </item> <!-- 0x10 -->
+ <item name="LedMode"> <bit>5</bit> </item> <!-- 0x20 -->
+ <item name="Key"> <bit>6</bit> </item> <!-- 0x40 -->
+ <item name="AutoRepeatMode"> <bit>7</bit> </item> <!-- 0x80 -->
+ <item name="String"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="Integer"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="AccelNum"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="AccelDenom"> <bit>1</bit> </item> <!-- 0x02 -->
+ <item name="Threshold"> <bit>2</bit> </item> <!-- 0x04 -->
+ </enum>
+
<request name="ChangeFeedbackControl" opcode="23">
- <field type="CARD32" name="mask" />
+ <field type="CARD32" name="mask" mask="ChangeFeedbackControlMask" />
<field type="CARD8" name="device_id" />
<field type="CARD8" name="feedback_id" />
<pad bytes="2" />
</list>
</struct>
+ <enum name="ValuatorStateModeMask">
+ <item name="DeviceModeAbsolute"> <bit>0</bit> </item>
+ <item name="OutOfProximity"> <bit>1</bit> </item>
+ </enum>
+
<struct name="ValuatorState">
<field type="CARD8" name="class_id" enum="InputClass" />
<field type="CARD8" name="len" />
<field type="CARD8" name="num_valuators" />
- <field type="CARD8" name="mode" />
+ <field type="CARD8" name="mode" mask="ValuatorStateModeMask" />
<list type="CARD32" name="valuators">
<fieldref>num_valuators</fieldref>
</list>
<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" />
<field type="CARD16" name="type" enum="HierarchyChangeType" />
<field type="CARD16" name="len" />
<field type="CARD16" name="name_len" />
- <field type="CARD8" name="send_core" />
- <field type="CARD8" name="enable" />
+ <field type="BOOL" name="send_core" />
+ <field type="BOOL" name="enable" />
<list type="char" name="name">
<fieldref>name_len</fieldref>
</list>
<field type="CARD16" name="number" />
<field type="CARD16" name="scroll_type" enum="ScrollType" />
<pad bytes="2" />
- <field type="CARD32" name="flags" enum="ScrollFlags" />
+ <field type="CARD32" name="flags" mask="ScrollFlags" />
<field type="FP3232" name="increment" />
</struct>
<struct name="XIDeviceInfo">
<field type="DeviceId" name="deviceid" altenum="Device" />
- <field type="CARD16" name="type" altenum="DeviceType" />
+ <field type="CARD16" name="type" enum="DeviceType" />
<field type="DeviceId" name="attachment" altenum="Device" />
<field type="CARD16" name="num_classes" />
<field type="CARD16" name="name_len" />
<field type="INT16" name="root_y" />
<field type="INT16" name="event_x" />
<field type="INT16" name="event_y" />
- <field type="CARD16" name="state" />
+ <field type="CARD16" name="state" mask="KeyButMask" />
<field type="BOOL" name="same_screen" />
<field type="CARD8" name="device_id" />
</event>
<event name="DeviceMappingNotify" number="11">
<field type="BYTE" name="device_id" />
- <field type="CARD8" name="request" />
+ <field type="CARD8" name="request" enum="Mapping" />
<field type="KeyCode" name="first_keycode" />
<field type="CARD8" name="count" />
<pad bytes="1" />
<field type="FP1616" name="root_y" />
<field type="FP1616" name="event_x" />
<field type="FP1616" name="event_y" />
- <field type="CARD8" name="same_screen" />
- <field type="CARD8" name="focus" />
+ <field type="BOOL" name="same_screen" />
+ <field type="BOOL" name="focus" />
<field type="CARD16" name="buttons_len" />
<field type="ModifierInfo" name="mods" />
<field type="GroupInfo" name="group" />