[Xcb] [PATCH proto 05/22] xinput: req GrabDeviceKey.modifier_device: altenum

Ran Benita ran234 at gmail.com
Thu Aug 21 04:14:11 PDT 2014


On Thu, Aug 21, 2014 at 02:10:42PM +0300, Ran Benita wrote:
> On Mon, Aug 18, 2014 at 02:59:45PM +0200, Christian Linhart wrote:
> > add altenum ModifierDevice to field modifier_device for value 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
> > Questions:
> > * is this spec wrong?
> > * or does "NULL" have the unusual value of 0xff in this context?
> 
> Yea, it seems NULL means UseXKeyboard here. So this looks good to me.

Or a bit more info: 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.

> Ran
> 
> > ---
> >  src/xinput.xml | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/src/xinput.xml b/src/xinput.xml
> > index 1bfa257..91fcecf 100644
> > --- a/src/xinput.xml
> > +++ b/src/xinput.xml
> > @@ -364,15 +364,15 @@ <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" />
> >          <field type="CARD8"  name="other_device_mode" enum="GrabMode" />
> >          <field type="BOOL"   name="owner_events" />
> >          <pad bytes="2" />
> >          <list type="EventClass" name="classes">
> > -- 
> > 2.0.1
> > 
> > _______________________________________________
> > Xcb mailing list
> > Xcb at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/xcb


More information about the Xcb mailing list