diff --git a/xkb/xkb.c b/xkb/xkb.c index bf1655a10f..b5ffc04ebf 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -597,11 +597,14 @@ int ProcXkbGetState(ClientPtr client) { REQUEST(xkbGetStateReq); + REQUEST_SIZE_MATCH(xkbGetStateReq); + + if (client->swapped) + swaps(&stuff->deviceSpec); + DeviceIntPtr dev; XkbStateRec *xkb; - REQUEST_SIZE_MATCH(xkbGetStateReq); - if (!(client->xkbClientFlags & _XkbClientInitialized)) return BadAccess; diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c index 8f93490de3..f624f4cbd5 100644 --- a/xkb/xkbSwap.c +++ b/xkb/xkbSwap.c @@ -118,15 +118,6 @@ SProcXkbSelectEvents(ClientPtr client) return ProcXkbSelectEvents(client); } -static int _X_COLD -SProcXkbGetState(ClientPtr client) -{ - REQUEST(xkbGetStateReq); - REQUEST_SIZE_MATCH(xkbGetStateReq); - swaps(&stuff->deviceSpec); - return ProcXkbGetState(client); -} - static int _X_COLD SProcXkbLatchLockState(ClientPtr client) { @@ -243,7 +234,7 @@ SProcXkbDispatch(ClientPtr client) case X_kbBell: return ProcXkbBell(client); case X_kbGetState: - return SProcXkbGetState(client); + return ProcXkbGetState(client); case X_kbLatchLockState: return SProcXkbLatchLockState(client); case X_kbGetControls: