diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-04-03 17:31:01 -0700 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-04-16 11:30:03 +1000 |
commit | 12188c8a8a537b38b1ca4cf8c0de5447e19c886a (patch) | |
tree | c7adb894a1b16284c52ed3f3e2f61d5eee56e209 | |
parent | 32ece7c09bf0ebc3d99b4078aacebbd44314776a (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.c | 3 |
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; |