diff -u xorg-server-1.11.4/debian/changelog xorg-server-1.11.4/debian/changelog --- xorg-server-1.11.4/debian/changelog +++ xorg-server-1.11.4/debian/changelog @@ -1,3 +1,11 @@ +xorg-server (2:1.11.4-0ubuntu9) precise; urgency=low + + * Report button press when touchscreen touch is active (LP: #972985) + - Add temporary patch 505_query_pointer_touchscreen.patch + - Fixes some compiz/unity touchscreen issues + + -- Chase Douglas Tue, 03 Apr 2012 19:04:01 -0700 + xorg-server (2:1.11.4-0ubuntu8) precise; urgency=low [ Chase Douglas ] diff -u xorg-server-1.11.4/debian/patches/series xorg-server-1.11.4/debian/patches/series --- xorg-server-1.11.4/debian/patches/series +++ xorg-server-1.11.4/debian/patches/series @@ -38,0 +39 @@ +505_query_pointer_touchscreen.patch only in patch2: unchanged: --- xorg-server-1.11.4.orig/debian/patches/505_query_pointer_touchscreen.patch +++ xorg-server-1.11.4/debian/patches/505_query_pointer_touchscreen.patch @@ -0,0 +1,32 @@ +From 3d6bd9fd8bd565f4c0513b2649a678109f60bd27 Mon Sep 17 00:00:00 2001 +From: Chase Douglas +Date: Tue, 3 Apr 2012 17:18:43 -0700 +Subject: [PATCH] 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 +--- + dix/events.c | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/dix/events.c b/dix/events.c +index 4470947..b9f9cfa 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; +-- +1.7.9.1 +