[comp.windows.x] Question on ChangeKeyboardControl

lewin@savax.UUCP (Stuart Lewin) (06/16/89)

Well, maybe I'm confused but:

In the Digital Press X Bible (the maroonish one) on page 191 it
talks about having the input to XChangeKeyboardControl being a
32-bit mask for the LEDs (and the implication that you can change
multiple ones with a single call), yet on page 596 the protocol
encoding has it as a single 8-bit id for a single led (i.e., 1-32).

OK, so I'll go look at the source...Well, Xproto.h and XChKeyCon.c
have the input defined as a 32-bit mask coming in via the
structure and being stuffed into the protocol packet for transmission,
but in events.c the server is extracting it as a value from 1-32,
and returning an error on anything else.

So my question is, which way is it: the Xlib or client's point of
view, or the server's...of course, in reality the server would
win out, but which way should it be (it seems like the ability to
set multiple LED's with a single request is the more desirable
approach, and wouldn't require a change to the protocol, only to
events.c and any subsequent processing). Should I file a bug
report on this or am I missing something obvious.

        Thanks,
        Stu

Sanders Associates, Inc.
603/885-0179
lewin@savax.sanders.com or ...!decvax!savax!lewin

Would you trust a man implementing a server in Ada?!?!

rws@EXPO.LCS.MIT.EDU (06/20/89)

Read your bible again.  Page 191 does not talk about a 32-bit mask; the
XKeyboardControl structure has an "int led" field.  Page 193 does talk
about a mask, and the XKeyboardState structure has an "unsigned long led_mask"
field.  This is all consistent with the protocol, where ChangeKeyboardControl
takes a single LED number but GetKeyboardControl returns a mask.