Age | Commit message (Collapse) | Author | Files | Lines |
|
The protocol encoding says:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#appD::Common_Types
KB_LEDCLASSRESULT
0 KbdFeedbackClass
4 LedFeedbackClass
KB_LEDCLASSSPEC
Encoding same as KB_LEDCLASSRESULT, with the addition of:
#x0300 XkbDfltXIClass
#x0500 XkbAllXIClasses
KB_BELLCLASSRESULT
0 KbdFeedbackClass
5 BellFeedbackClass
KB_BELLCLASSSPEC
Encoding same as KB_BELLCLASSRESULT, with the addition of:
#x0300 XkbDfltXIClass
Note that the spec says something slightly different in another section:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Common_Types
KB_LEDCLASSSPEC { KbdFeedbackClass , LedFeedbackClass , DfltXIClass , AllXIClasses , XINone }
KB_BELLCLASSSPEC { KbdFeedbackClass , BellFeedbackClass , DfltXIClass , AllXIClasses }}
From what I could gather, the encoding is the correct one (but I'm not
sure).
Signed-off-by: Ran Benita <ran234@gmail.com>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
|
|
The protocol encoding has it:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#appD::Requests
1 CARD8 opcode
1 15 xkb-opcode
[...]
1 1 Reply
1 CARD8 deviceID
2 CARD16 sequence number
[...]
4 SETofKB_BOOLCTRL map.ctrls
1 BOOL supported
3 unused
And xkbGetNamedIndicatorReply in XKBproto.h also.
Finally, the server does send it, though it's always TRUE.
Signed-off-by: Ran Benita <ran234@gmail.com>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
|
|
These two structs are used by the server in the exact same way, and are
handled together (see xkb/xkbPrKeyEv.c, XkbKB_Overlay{1,2} handling).
There is no need to use different (and for some reason slightly
different) types for them.
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
The spec says:
#x02 XkbSA_DfltBtnAbsolute
But /usr/include/X11/extensions/XKB.h has:
#define XkbSA_DfltBtnAbsolute (1L << 2)
which is what the server sends.
Note: the XKB spec was changed by Daniel Martin to match the Xlib value.
See kbproto commit db07706cb268d5fe1bc38ef5c0a9f49309068b2c.
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
In fact, unlike the deleted comment says, both Xlib and the server use
the order as specified in the protocol spec:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#appD::Requests
(Search for KB_KTMAPENTRY).
Also see struct xkbKTMapEntryWireDesc in
/usr/include/X11/extensions/XKBproto.h
Reviewed-by: Peter Harris <pharris@opentext.com>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
The basic situation is this: a list of CARD8/CARD16s followed by a list
of CARD16/CARD32s. In the current code, the second list is aligned to
1/2 bytes according the size of the first list. However, in some cases
the second list needs to be aligned to 4 bytes per the xkbproto spec:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#appD::Requests
XkbGetMap reply (xkb-opcode 8):
[...]
a LISTofCARD8 actsRtrn.count
p unused,p=pad(a)
8A LISTofKB_ACTION actsRtrn.acts
4B LISTofKB_SETBEHAVIOR behaviorsRtrn
v LISTofSETofKEYMASK vmodsRtrn
p unused, p=pad(v)
2E LISTofKB_SETEXPLICIT explicitRtrn
p unused,p=pad(2E)
2M LISTofKB_KEYMODMAP modmapRtrn
p unused, p=pad(2M)
[...]
XkbGetNames reply (xkb-opcode 17):
[...]
l LISTofCARD8 nLevelsPerType, sum of all elements=L
p unused, p=pad(l)
[...]
The server and Xlib handle this with calls to XkbPaddedSize(), which is
a good way to see where the extra padding is needed.
Signed-off-by: Ran Benita <ran234@gmail.com>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
|
|
Changes fields with enums EventType, MapPart, or BoolCtrl to use them as
masks instead.
|
|
Contrary to the spec, the server doesn't set nIndicators.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
Each part of the reply has a fake type, sequence, and length. In
addition, some parts of the reply are encoded only once even when
multiple bits are set.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
This does not impact libxcb, but it makes some pretty-printers prettier.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
nVModMapKeys is usually larger than <popcount>virtualMods</popcount>.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
SymInterpret is referenced by the spec, but never defined. Therefore,
the definition of SymInterpret is inferred from the server implementation.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
Should be <pad align=4>, not <pad bytes=1>. This is a very long-winded
way to write <pad align>, since libxcb doesn't support <pad align> yet.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
CountedString8 is never used.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
The no-sequence-number attribute was not necessary to achive what commit
d42d791 did. The first field automatically goes between the
response_type and the sequence field in the header. So, adding the
xkbType field would've been sufficient to fix the broken events.
Reference-to: d42d791 XKB: Fix broken events
|
|
XKB events all have exactly the same event number - 0 (from the XKB
event base). Within this, they're all multiplexed by the xkbType field,
which comes immediately after the event type field, before the sequence
number. Without this field, the events are pretty much useless, so add
it manually.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
|
|
This fixes #43606
Signed-off-by: Julien Danjou <julien@danjou.info>
|
|
XKB-SetControls has some incorrectly named fields according to the spec,
interanlRealMods -> internalRealMods, Internal where Ignore should be used.
This fixes #43605
Signed-off-by: Julien Danjou <julien@danjou.info>
|
|
These fields are already defined by the protocol. Rename them to avoid
potential name collisions.
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
xml: small fixes according to Xlib or the spec
|
|
|
|
Reviewed-by: Ian Osgood <iano@quirkster.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
|
|
These were discovered while updating the wireshark dissector:
- Clean up "ID" enum definition and usage
- Clean up XIFeature masks
- Use SetOfGroup (not Group) for masks
- Use LedClass as an enum, not as a mask
|
|
Thanks to Mariusz Ceier <mceier@gmail.com> for starting this work, and
to Google's Summer of Code for sponsoring the initial work.
Signed-off-by: Peter Harris <pharris@opentext.com>
|