From 9e309f36e0cefd6d369580fc60d13a6061380b7a Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Apr 2025 18:46:26 +0200 Subject: [PATCH] (!1893) dix: write out X_GrabPointer reply directly No need for using a complex callback machinery, if we just move the little pieces of byte-swapping directly into the request handler. Signed-off-by: Enrico Weigelt, metux IT consult --- dix/events.c | 9 ++++++--- dix/tables.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dix/events.c b/dix/events.c index 4e2cef660..2030420e1 100644 --- a/dix/events.c +++ b/dix/events.c @@ -5015,7 +5015,6 @@ ProcGetInputFocus(ClientPtr client) int ProcGrabPointer(ClientPtr client) { - xGrabPointerReply rep; DeviceIntPtr device = PickPointer(client); GrabPtr grab; GrabMask mask; @@ -5055,13 +5054,17 @@ ProcGrabPointer(ClientPtr client) if (rc != Success) return rc; - rep = (xGrabPointerReply) { + xGrabPointerReply rep = { .type = X_Reply, .status = status, .sequenceNumber = client->sequence, .length = 0 }; - WriteReplyToClient(client, sizeof(xGrabPointerReply), &rep); + + if (client->swapped) { + swaps(&rep.sequenceNumber); + } + WriteToClient(client, sizeof(rep), &rep); return Success; } diff --git a/dix/tables.c b/dix/tables.c index 8c574bfd4..e899c111a 100644 --- a/dix/tables.c +++ b/dix/tables.c @@ -739,7 +739,7 @@ ReplySwapPtr ReplySwapVector[256] = { ReplyNotSwappd, ReplyNotSwappd, ReplyNotSwappd, /* 25 */ - (ReplySwapPtr) SGenericReply, /* SGrabPointerReply, */ + ReplyNotSwappd, ReplyNotSwappd, ReplyNotSwappd, ReplyNotSwappd,