Imported Debian patch 2:1.11.4-0ubuntu9
authorChase Douglas <chase.douglas@ubuntu.com>
Wed, 4 Apr 2012 02:04:01 +0000 (19:04 -0700)
committerXavier Boudet <x-boudet@ti.com>
Wed, 4 Apr 2012 11:39:21 +0000 (11:39 +0000)
debian/changelog
debian/patches/505_query_pointer_touchscreen.patch [new file with mode: 0644]
debian/patches/series

index bd2be2cef5da58c7bc78ca13b89f199195431a8f..8453b8e5168ffd9c1899f1288d18f4767cbe4b9c 100644 (file)
@@ -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 <chase.douglas@ubuntu.com>  Tue, 03 Apr 2012 19:04:01 -0700
+
 xorg-server (2:1.11.4-0ubuntu8) precise; urgency=low
 
   [ Chase Douglas ]
diff --git a/debian/patches/505_query_pointer_touchscreen.patch b/debian/patches/505_query_pointer_touchscreen.patch
new file mode 100644 (file)
index 0000000..0443acf
--- /dev/null
@@ -0,0 +1,32 @@
+From 3d6bd9fd8bd565f4c0513b2649a678109f60bd27 Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+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 <chase.douglas@canonical.com>
+---
+ 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
+
index 50bfb358b99fe0fa2ebbe553818e5369062ec3ac..120a81a351b4d83ef751bd2e039be417c15b8e4f 100644 (file)
@@ -36,3 +36,4 @@
 502_indirect_touch_window_set.patch
 503_fix_mouse_warp.patch
 504_implement_passive_touch_ungrab.patch
+505_query_pointer_touchscreen.patch