From de415743f4c1878df2de79f84f5fe087a88d5241 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 13 Mar 2009 15:19:23 +1000 Subject: [PATCH] dix: fix XACE checks in ProcWarpPointer --- dix/events.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dix/events.c b/dix/events.c index d8d8ec536..14f5a9916 100644 --- a/dix/events.c +++ b/dix/events.c @@ -3044,22 +3044,22 @@ ProcWarpPointer(ClientPtr client) WindowPtr dest = NULL; int x, y, rc; ScreenPtr newScreen; - DeviceIntPtr dev; + DeviceIntPtr dev, tmp; SpritePtr pSprite; REQUEST(xWarpPointerReq); REQUEST_SIZE_MATCH(xWarpPointerReq); - /* XXX XACE ??*/ - for (dev = inputInfo.devices; dev; dev = dev->next) { - if ((dev->coreEvents || dev == inputInfo.pointer) && dev->button) { + dev = PickPointer(client); + + for (tmp = inputInfo.devices; tmp; tmp = tmp->next) { + if ((tmp == dev) || (!tmp->isMaster && tmp->u.master == dev)) { rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixWriteAccess); if (rc != Success) return rc; } } - dev = PickPointer(client); if (dev->u.lastSlave) dev = dev->u.lastSlave; pSprite = dev->spriteInfo->sprite;