From 8d46c0696583271201994f49b05cd473bf25244c Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Thu, 25 Sep 2025 16:09:51 +0200 Subject: [PATCH] Xi: inline SProcXIQueryPointer() Signed-off-by: Enrico Weigelt, metux IT consult --- Xi/extinit.c | 2 +- Xi/handlers.h | 1 - Xi/xiquerypointer.c | 18 ++++++------------ test/xi2/protocol-xiquerypointer.c | 2 +- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/Xi/extinit.c b/Xi/extinit.c index 832bf690d0..02c8f83041 100644 --- a/Xi/extinit.c +++ b/Xi/extinit.c @@ -432,7 +432,7 @@ SProcIDispatch(ClientPtr client) return ProcXGetDeviceProperty(client); /* XI 2 */ case X_XIQueryPointer: - return SProcXIQueryPointer(client); + return ProcXIQueryPointer(client); case X_XIWarpPointer: return ProcXIWarpPointer(client); case X_XIChangeCursor: diff --git a/Xi/handlers.h b/Xi/handlers.h index 42c917c185..2504e17c9e 100644 --- a/Xi/handlers.h +++ b/Xi/handlers.h @@ -70,7 +70,6 @@ int ProcXUngrabDevice(ClientPtr client); int ProcXUngrabDeviceKey(ClientPtr client); int SProcXIGetSelectedEvents(ClientPtr client); -int SProcXIQueryPointer(ClientPtr client); int SProcXISelectEvents(ClientPtr client); #endif /* _XSERVER_XI_HANDLERS_H */ diff --git a/Xi/xiquerypointer.c b/Xi/xiquerypointer.c index b70058c186..f84b82265d 100644 --- a/Xi/xiquerypointer.c +++ b/Xi/xiquerypointer.c @@ -62,20 +62,17 @@ * */ -int _X_COLD -SProcXIQueryPointer(ClientPtr client) +int +ProcXIQueryPointer(ClientPtr client) { REQUEST(xXIQueryPointerReq); REQUEST_SIZE_MATCH(xXIQueryPointerReq); - swaps(&stuff->deviceid); - swapl(&stuff->win); - return (ProcXIQueryPointer(client)); -} + if (client->swapped) { + swaps(&stuff->deviceid); + swapl(&stuff->win); + } -int -ProcXIQueryPointer(ClientPtr client) -{ int rc; DeviceIntPtr pDev, kbd; WindowPtr pWin, t; @@ -83,9 +80,6 @@ ProcXIQueryPointer(ClientPtr client) XkbStatePtr state; Bool have_xi22 = FALSE; - REQUEST(xXIQueryPointerReq); - REQUEST_SIZE_MATCH(xXIQueryPointerReq); - /* Check if client is compliant with XInput 2.2 or later. Earlier clients * do not know about touches, so we must report emulated button presses. 2.2 * and later clients are aware of touches, so we don't include emulated diff --git a/test/xi2/protocol-xiquerypointer.c b/test/xi2/protocol-xiquerypointer.c index a7c0c31daf..4e7a01573e 100644 --- a/test/xi2/protocol-xiquerypointer.c +++ b/test/xi2/protocol-xiquerypointer.c @@ -133,7 +133,7 @@ request_XIQueryPointer(ClientPtr client, xXIQueryPointerReq * req, int error) swaps(&req->deviceid); swapl(&req->win); swaps(&req->length); - rc = SProcXIQueryPointer(&client_request); + rc = ProcXIQueryPointer(&client_request); assert(rc == error); if (rc == BadDevice)