summaryrefslogtreecommitdiff
path: root/dix/events.c
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2012-04-03 17:31:01 -0700
committerPeter Hutterer <peter.hutterer@who-t.net>2012-04-16 11:30:03 +1000
commit12188c8a8a537b38b1ca4cf8c0de5447e19c886a (patch)
treec7adb894a1b16284c52ed3f3e2f61d5eee56e209 /dix/events.c
parent32ece7c09bf0ebc3d99b4078aacebbd44314776a (diff)
Use touch state when querying pointer through core protocol
QueryPointer is part of the core protocol. As such, it knows nothing about touch devices. Touches are converted to button 1 press, pointer motion, and button 1 release for core clients, so we should ensure the pointer state mask has button 1 set when XQueryPointer is used. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'dix/events.c')
-rw-r--r--dix/events.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/dix/events.c b/dix/events.c
index 447094757..b9f9cfa3c 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -5098,8 +5098,7 @@ ProcQueryPointer(ClientPtr client)
memset(&rep, 0, sizeof(xQueryPointerReply));
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
- rep.mask = mouse->button ? (mouse->button->state) : 0;
- rep.mask |= XkbStateFieldFromRec(&keyboard->key->xkbInfo->state);
+ rep.mask = event_get_corestate(mouse, keyboard);
rep.length = 0;
rep.root = (GetCurrentRootWindow(mouse))->drawable.id;
rep.rootX = pSprite->hot.x;