diff --git a/dix/events.c b/dix/events.c index da25a469c..42299a71a 100644 --- a/dix/events.c +++ b/dix/events.c @@ -5007,16 +5007,24 @@ ProcGetInputFocus(ClientPtr client) int ProcGrabPointer(ClientPtr client) { + REQUEST(xGrabPointerReq); + REQUEST_SIZE_MATCH(xGrabPointerReq); + + if (client->swapped) { + swapl(&stuff->grabWindow); + swaps(&stuff->eventMask); + swapl(&stuff->confineTo); + swapl(&stuff->cursor); + swapl(&stuff->time); + } + DeviceIntPtr device = PickPointer(client); GrabPtr grab; GrabMask mask; WindowPtr confineTo; BYTE status; - - REQUEST(xGrabPointerReq); int rc; - REQUEST_SIZE_MATCH(xGrabPointerReq); UpdateCurrentTime(); if (stuff->eventMask & ~PointerGrabMask) { diff --git a/dix/reqhandlers_priv.h b/dix/reqhandlers_priv.h index 305c3c39e..bf947a6ff 100644 --- a/dix/reqhandlers_priv.h +++ b/dix/reqhandlers_priv.h @@ -57,8 +57,6 @@ XRetCode SProcGrabKey(ClientPtr pClient) _X_ATTRIBUTE_NONNULL_ARG(1); XRetCode SProcGrabKeyboard(ClientPtr pClient) _X_ATTRIBUTE_NONNULL_ARG(1); -XRetCode SProcGrabPointer(ClientPtr pClient) - _X_ATTRIBUTE_NONNULL_ARG(1); XRetCode SProcRecolorCursor(ClientPtr pClient) _X_ATTRIBUTE_NONNULL_ARG(1); XRetCode SProcSetInputFocus(ClientPtr pClient) diff --git a/dix/swapreq.c b/dix/swapreq.c index 964274f98..f4c384e1a 100644 --- a/dix/swapreq.c +++ b/dix/swapreq.c @@ -187,19 +187,6 @@ SProcSendEvent(ClientPtr client) return ((*ProcVector[X_SendEvent]) (client)); } -int _X_COLD -SProcGrabPointer(ClientPtr client) -{ - REQUEST(xGrabPointerReq); - REQUEST_SIZE_MATCH(xGrabPointerReq); - swapl(&stuff->grabWindow); - swaps(&stuff->eventMask); - swapl(&stuff->confineTo); - swapl(&stuff->cursor); - swapl(&stuff->time); - return ((*ProcVector[X_GrabPointer]) (client)); -} - int _X_COLD SProcGrabButton(ClientPtr client) { diff --git a/dix/tables.c b/dix/tables.c index 0f27bb68a..07e91ae0f 100644 --- a/dix/tables.c +++ b/dix/tables.c @@ -358,7 +358,7 @@ int (*SwappedProcVector[256]) (ClientPtr /* client */) = { ProcGetSelectionOwner, SProcConvertSelection, SProcSendEvent, /* 25 */ - SProcGrabPointer, + ProcGrabPointer, ProcUngrabPointer, SProcGrabButton, SProcUngrabButton,