diff options
Diffstat (limited to 'dix/events.c')
-rw-r--r-- | dix/events.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/dix/events.c b/dix/events.c index f9448ba76..9b0ff55a8 100644 --- a/dix/events.c +++ b/dix/events.c @@ -4771,7 +4771,7 @@ ProcQueryPointer(ClientPtr client) if (rc != Success) return rc; rc = XaceHook(XACE_DEVICE_ACCESS, client, mouse, DixReadAccess); - if (rc != Success) + if (rc != Success && rc != BadAccess) return rc; pSprite = mouse->spriteInfo->sprite; @@ -4815,6 +4815,15 @@ ProcQueryPointer(ClientPtr client) } #endif + if (rc == BadAccess) { + rep.mask = 0; + rep.child = None; + rep.rootX = 0; + rep.rootY = 0; + rep.winX = 0; + rep.winY = 0; + } + WriteReplyToClient(client, sizeof(xQueryPointerReply), &rep); return(Success); |