diff options
Diffstat (limited to 'src/xinput.xml')
-rw-r--r-- | src/xinput.xml | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/src/xinput.xml b/src/xinput.xml index c0b497e..9a35e9d 100644 --- a/src/xinput.xml +++ b/src/xinput.xml @@ -987,25 +987,8 @@ This affects the following: </reply> </request> - <!-- SendExtensionEvent --> - - <request name="SendExtensionEvent" opcode="31"> - <field type="WINDOW" name="destination" /> - <field type="CARD8" name="device_id" /> - <field type="BOOL" name="propagate" /> - <field type="CARD16" name="num_classes" /> - <field type="CARD8" name="num_events" /> - <pad bytes="3" /> - <list type="CARD8" name="events"> - <op op="*"> - <fieldref>num_events</fieldref> - <value>32</value> - </op> - </list> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> - </request> + <!-- SendExtensionEvent (opcode 16) has to be defined after the events + because we do not support backward references --> <!-- DeviceBell --> @@ -2642,6 +2625,42 @@ This affects the following: <eventcopy name="BarrierLeave" number="26" ref="BarrierHit" /> + <!-- ⋅⋅⋅ Requests that depend on events ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <!-- SendExtensionEvent --> + <eventstruct name="EventForSend"> + <allowed extension="Input" xge="false" opcode-min="0" opcode-max="16" /> + <!-- We need not allow the newer events which are based on + the GenericEvent extension: + The wire-protocol-spec + https://cgit.freedesktop.org/xorg/lib/libXi/tree/specs/encoding.xml?idĺibXi-1.7.9#n1793 + only allows fixed sized events, which seems + to rule out GenericEvent. + + The xlib-implementation also assumes fixed-sized events. + https://cgit.freedesktop.org/xorg/lib/libXi/tree/src/XSndExEv.c?id=libXi-1.7.9#n106 + + The Xserver also allows only non-GE events: + https:g/xorg/xserver/tree/Xi/sendexev.c?id=xorg-server-1.19.1#n144 + --> + </eventstruct> + + <request name="SendExtensionEvent" opcode="31"> + <field type="WINDOW" name="destination" /> + <field type="CARD8" name="device_id" /> + <field type="BOOL" name="propagate" /> + <field type="CARD16" name="num_classes" /> + <field type="CARD8" name="num_events" /> + <pad bytes="3" /> + <list type="EventForSend" name="events"> + <fieldref>num_events</fieldref> + </list> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> + </request> + + <!-- ⋅⋅⋅ Errors (v1.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> <error name="Device" number="0" /> |