dix: write out xGetKeyboardControlReply directly

This commit is contained in:
Enrico Weigelt, metux IT consult
2025-04-03 16:26:23 +02:00
parent c7ded3fc6c
commit 67ecf846be
4 changed files with 13 additions and 24 deletions

View File

@@ -2272,18 +2272,16 @@ ProcChangeKeyboardControl(ClientPtr client)
int
ProcGetKeyboardControl(ClientPtr client)
{
int rc, i;
DeviceIntPtr kbd = PickKeyboard(client);
KeybdCtrl *ctrl = &kbd->kbdfeed->ctrl;
xGetKeyboardControlReply rep;
REQUEST_SIZE_MATCH(xReq);
rc = XaceHookDeviceAccess(client, kbd, DixGetAttrAccess);
int rc = XaceHookDeviceAccess(client, kbd, DixGetAttrAccess);
if (rc != Success)
return rc;
rep = (xGetKeyboardControlReply) {
xGetKeyboardControlReply rep = {
.type = X_Reply,
.globalAutoRepeat = ctrl->autoRepeat,
.sequenceNumber = client->sequence,
@@ -2294,9 +2292,17 @@ ProcGetKeyboardControl(ClientPtr client)
.bellPitch = ctrl->bell_pitch,
.bellDuration = ctrl->bell_duration
};
for (i = 0; i < 32; i++)
for (int i = 0; i < 32; i++)
rep.map[i] = ctrl->autoRepeats[i];
WriteReplyToClient(client, sizeof(xGetKeyboardControlReply), &rep);
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
swapl(&rep.ledMask);
swaps(&rep.bellPitch);
swaps(&rep.bellDuration);
}
WriteToClient(client, sizeof(rep), &rep);
return Success;
}

View File

@@ -535,18 +535,6 @@ SListExtensionsReply(ClientPtr pClient, int size, xListExtensionsReply * pRep)
WriteToClient(pClient, size, pRep);
}
void _X_COLD
SGetKeyboardControlReply(ClientPtr pClient, int size,
xGetKeyboardControlReply * pRep)
{
swaps(&pRep->sequenceNumber);
swapl(&pRep->length);
swapl(&pRep->ledMask);
swaps(&pRep->bellPitch);
swaps(&pRep->bellDuration);
WriteToClient(pClient, size, pRep);
}
void _X_COLD
SGetPointerControlReply(ClientPtr pClient, int size,
xGetPointerControlReply * pRep)

View File

@@ -819,7 +819,7 @@ ReplySwapPtr ReplySwapVector[256] = {
ReplyNotSwappd, /* 100 */
ReplyNotSwappd,
ReplyNotSwappd,
(ReplySwapPtr) SGetKeyboardControlReply,
ReplyNotSwappd,
ReplyNotSwappd,
ReplyNotSwappd, /* 105 */
(ReplySwapPtr) SGetPointerControlReply,

View File

@@ -154,11 +154,6 @@ extern void SListExtensionsReply(ClientPtr /* pClient */ ,
int /* size */ ,
xListExtensionsReply * /* pRep */ );
extern void SGetKeyboardControlReply(ClientPtr /* pClient */ ,
int /* size */ ,
xGetKeyboardControlReply *
/* pRep */ );
extern void SGetPointerControlReply(ClientPtr /* pClient */ ,
int /* size */ ,
xGetPointerControlReply *