xinput: req GrabDeviceKey.modifier_device: altenum
authorChristian Linhart <chris@DemoRecorder.com>
Fri, 22 Aug 2014 15:15:24 +0000 (17:15 +0200)
committerChristian Linhart <chris@demorecorder.com>
Mon, 25 Aug 2014 11:42:55 +0000 (13:42 +0200)
add altenum ModifierDevice to field modifier_device for value UseXKeyboard

V2: patch revised according to info from Ran Benita about NULL and UseXKeyboard

spec and code:
http://cgit.freedesktop.org/xorg/lib/libXi/tree/specs/encoding.xml#n1147
http://cgit.freedesktop.org/xorg/proto/inputproto/tree/XI.h#n187
http://cgit.freedesktop.org/xorg/xserver/tree/Xi/grabdevk.c#n116

the following spec uses "NULL" instead of "UseXKeyboard":
http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XIproto.txt#n1213

The reason for NULL vs UseXKeyboard is: in the libXi function XUngrabDeviceKey,
the modifier_device arg is an XDevice pointer, and NULL means to use the
core X keyboard. But on the wire it is an integer, with 255 as a special
value.

src/xinput.xml

index 088984c..faa67ac 100644 (file)
@@ -368,7 +368,7 @@ authorization from the authors.
         <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" />