diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-02-28 13:04:36 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-05-10 14:26:15 +1000 |
commit | 8b0d21044956f3810199d5e2f38ce33069e97be7 (patch) | |
tree | 14d29d59c8b9f549e62788e62162313e0525d105 /Xi/exevents.c | |
parent | d08bae297f9d7651edb1923d6b0d6b14b3d674fc (diff) |
Xi: fix lookup in ActivateEarlyAccept
ActivateEarlyAccept() can only be called from a grabbing client, so we can
ignore the rest. And it's easy enough to get the client from that since
9ad0fdb135a1c336771aee1f6eab75a6ad874aff.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'Xi/exevents.c')
-rw-r--r-- | Xi/exevents.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c index 27551dd09..b1df0cb43 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1039,17 +1039,16 @@ ActivateEarlyAccept(DeviceIntPtr dev, TouchPointInfoPtr ti) int rc; ClientPtr client; XID error; + GrabPtr grab = ti->listeners[0].grab; - rc = dixLookupClient(&client, ti->listeners[0].listener, serverClient, - DixSendAccess); - if (rc != Success) { - ErrorF("[Xi] Failed to lookup early accepting client.\n"); - return; - } + BUG_RETURN(ti->listeners[0].type != LISTENER_GRAB && + ti->listeners[0].type != LISTENER_POINTER_GRAB); + BUG_RETURN(!grab); + + client = rClient(grab); if (TouchAcceptReject(client, dev, XIAcceptTouch, ti->client_id, - ti->listeners[0].window->drawable.id, &error) != - Success) + ti->listeners[0].window->drawable.id, &error) != Success) ErrorF("[Xi] Failed to accept touch grab after early acceptance.\n"); } |