From 02930c99fe1b36637959ab7aa2a4adb49c344df7 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Apr 2025 18:46:26 +0200 Subject: [PATCH] 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 da7ca5ae9..863dba332 100644 --- a/dix/events.c +++ b/dix/events.c @@ -5013,7 +5013,6 @@ ProcGetInputFocus(ClientPtr client) int ProcGrabPointer(ClientPtr client) { - xGrabPointerReply rep; DeviceIntPtr device = PickPointer(client); GrabPtr grab; GrabMask mask; @@ -5053,13 +5052,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 40179e851..f2e087f04 100644 --- a/dix/tables.c +++ b/dix/tables.c @@ -741,7 +741,7 @@ ReplySwapPtr ReplySwapVector[256] = { ReplyNotSwappd, ReplyNotSwappd, ReplyNotSwappd, /* 25 */ - (ReplySwapPtr) SGenericReply, /* SGrabPointerReply, */ + ReplyNotSwappd, ReplyNotSwappd, ReplyNotSwappd, ReplyNotSwappd,