summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dix/events.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/dix/events.c b/dix/events.c
index 8b30706de..11a8fa537 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -4626,6 +4626,7 @@ ProcQueryPointer(ClientPtr client)
xQueryPointerReply rep;
WindowPtr pWin, t;
DeviceIntPtr mouse = PickPointer(client);
+ DeviceIntPtr keyboard;
SpritePtr pSprite;
int rc;
REQUEST(xResourceReq);
@@ -4638,6 +4639,8 @@ ProcQueryPointer(ClientPtr client)
if (rc != Success)
return rc;
+ keyboard = GetPairedDevice(mouse);
+
pSprite = mouse->spriteInfo->sprite;
if (mouse->valuator->motionHintWindow)
MaybeStopHint(mouse, client);
@@ -4645,7 +4648,7 @@ ProcQueryPointer(ClientPtr client)
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.mask = mouse->button->state;
- rep.mask |= XkbStateFieldFromRec(&inputInfo.keyboard->key->xkbInfo->state);
+ rep.mask |= XkbStateFieldFromRec(&keyboard->key->xkbInfo->state);
rep.length = 0;
rep.root = (RootWindow(mouse))->drawable.id;
rep.rootX = pSprite->hot.x;