diff --git a/Xi/exevents.c b/Xi/exevents.c index 9a179500b..7a54c08d2 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -566,7 +566,7 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode, DeviceButtonPress, button, confineTo, cursor); if (!grab) return BadAlloc; - return AddPassiveGrabToList(grab); + return AddPassiveGrabToList(client, grab); } int @@ -621,7 +621,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode, NullWindow, NullCursor); if (!grab) return BadAlloc; - return AddPassiveGrabToList(grab); + return AddPassiveGrabToList(client, grab); } int diff --git a/dix/events.c b/dix/events.c index bb5b9507b..246220f59 100644 --- a/dix/events.c +++ b/dix/events.c @@ -4727,7 +4727,7 @@ ProcGrabKey(ClientPtr client) NullWindow, NullCursor); if (!grab) return BadAlloc; - return AddPassiveGrabToList(grab); + return AddPassiveGrabToList(client, grab); } @@ -4815,7 +4815,7 @@ ProcGrabButton(ClientPtr client) stuff->button, confineTo, cursor); if (!grab) return BadAlloc; - return AddPassiveGrabToList(grab); + return AddPassiveGrabToList(client, grab); } /** diff --git a/dix/grabs.c b/dix/grabs.c index b8d0df88d..229329699 100644 --- a/dix/grabs.c +++ b/dix/grabs.c @@ -307,7 +307,7 @@ GrabsAreIdentical(GrabPtr pFirstGrab, GrabPtr pSecondGrab) * @return Success or X error code on failure. */ int -AddPassiveGrabToList(GrabPtr pGrab) +AddPassiveGrabToList(ClientPtr client, GrabPtr pGrab) { GrabPtr grab; Mask access_mode = DixGrabAccess; @@ -327,8 +327,7 @@ AddPassiveGrabToList(GrabPtr pGrab) if (grab->keyboardMode == GrabModeSync || grab->pointerMode == GrabModeSync) access_mode |= DixFreezeAccess; - rc = XaceHook(XACE_DEVICE_ACCESS, clients[CLIENT_ID(grab->resource)], - grab->device, access_mode); + rc = XaceHook(XACE_DEVICE_ACCESS, client, grab->device, access_mode); if (rc != Success) return rc; diff --git a/include/dixgrabs.h b/include/dixgrabs.h index 2d66d6ba1..f93e99957 100644 --- a/include/dixgrabs.h +++ b/include/dixgrabs.h @@ -50,6 +50,7 @@ extern Bool GrabMatchesSecond( GrabPtr /* pSecondGrab */); extern int AddPassiveGrabToList( + ClientPtr /* client */, GrabPtr /* pGrab */); extern Bool DeletePassiveGrabFromList(