summaryrefslogtreecommitdiff
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
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>
-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;