diff --git a/Xi/extinit.c b/Xi/extinit.c index e88a06a47..f45165c87 100644 --- a/Xi/extinit.c +++ b/Xi/extinit.c @@ -376,7 +376,7 @@ SProcIDispatch(ClientPtr client) case X_ChangePointerDevice: return ProcXChangePointerDevice(client); case X_GrabDevice: - return SProcXGrabDevice(client); + return ProcXGrabDevice(client); case X_UngrabDevice: return ProcXUngrabDevice(client); case X_GrabDeviceKey: diff --git a/Xi/grabdev.c b/Xi/grabdev.c index 59304fcd9..0e56d1d0b 100644 --- a/Xi/grabdev.c +++ b/Xi/grabdev.c @@ -67,31 +67,6 @@ SOFTWARE. extern XExtEventInfo EventInfo[]; extern int ExtEventIndex; -/*********************************************************************** - * - * Swap the request if the requestor has a different byte order than us. - * - */ - -int _X_COLD -SProcXGrabDevice(ClientPtr client) -{ - REQUEST(xGrabDeviceReq); - REQUEST_AT_LEAST_SIZE(xGrabDeviceReq); - - swapl(&stuff->grabWindow); - swapl(&stuff->time); - swaps(&stuff->event_count); - - if (client->req_len != - bytes_to_int32(sizeof(xGrabDeviceReq)) + stuff->event_count) - return BadLength; - - SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count); - - return (ProcXGrabDevice(client)); -} - /*********************************************************************** * * Grab an extension device. @@ -101,18 +76,27 @@ SProcXGrabDevice(ClientPtr client) int ProcXGrabDevice(ClientPtr client) { - int rc; - DeviceIntPtr dev; - GrabMask mask; - struct tmask tmp[EMASKSIZE]; - REQUEST(xGrabDeviceReq); REQUEST_AT_LEAST_SIZE(xGrabDeviceReq); + if (client->swapped) { + swapl(&stuff->grabWindow); + swapl(&stuff->time); + swaps(&stuff->event_count); + } + if (client->req_len != bytes_to_int32(sizeof(xGrabDeviceReq)) + stuff->event_count) return BadLength; + if (client->swapped) + SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count); + + int rc; + DeviceIntPtr dev; + GrabMask mask; + struct tmask tmp[EMASKSIZE]; + xGrabDeviceReply rep = { .RepType = X_GrabDevice, }; diff --git a/Xi/handlers.h b/Xi/handlers.h index bc908ffbe..7bfd282c9 100644 --- a/Xi/handlers.h +++ b/Xi/handlers.h @@ -76,7 +76,6 @@ int SProcXGetDeviceMotionEvents(ClientPtr client); int SProcXGetExtensionVersion(ClientPtr client); int SProcXGetSelectedExtensionEvents(ClientPtr client); int SProcXGrabDeviceButton(ClientPtr client); -int SProcXGrabDevice(ClientPtr client); int SProcXGrabDeviceKey(ClientPtr client); int SProcXIAllowEvents(ClientPtr client); int SProcXIBarrierReleasePointer(ClientPtr client);