Imported Debian patch 2:1.11.4-0ubuntu10.2
authorChase Douglas <chase.douglas@ubuntu.com>
Sat, 5 May 2012 20:17:34 +0000 (13:17 -0700)
committerXavier Boudet <x-boudet@ti.com>
Wed, 9 May 2012 07:20:08 +0000 (09:20 +0200)
debian/changelog
debian/patches/508_device_off_release_buttons.patch [new file with mode: 0644]
debian/patches/series

index 58183750a3a7d1cd215e81ee676629efe2d4cbc1..bc906d22872b7521843a4bf7fd5df2535dc4858e 100644 (file)
@@ -1,3 +1,10 @@
+xorg-server (2:1.11.4-0ubuntu10.2) precise-proposed; urgency=low
+
+  * Release buttons when device is disabled on suspend (LP: #968845)
+    - Add temporary patch 508_device_off_release_buttons.patch from upstream
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Sat, 05 May 2012 13:17:34 -0700
+
 xorg-server (2:1.11.4-0ubuntu10.1) precise-proposed; urgency=low
 
   [ Bryce Harrington ]
diff --git a/debian/patches/508_device_off_release_buttons.patch b/debian/patches/508_device_off_release_buttons.patch
new file mode 100644 (file)
index 0000000..91d2249
--- /dev/null
@@ -0,0 +1,37 @@
+From adaf1adecf5697455e9f3fb0234939113873f959 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 30 Apr 2012 10:01:48 +1000
+Subject: [PATCH] dix: when disabling a device, release all buttons and keys
+
+A suspend-induced device disable may happen before the device gets to see
+the button release event. On resume, the server's internal state still has
+some buttons pressed, causing inconsistent behaviour.
+
+Force the release and the matching events to be sent to the client.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
+Conflicts:
+
+       dix/devices.c
+---
+ dix/devices.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/dix/devices.c b/dix/devices.c
+index 9624424..b325d17 100644
+--- a/dix/devices.c
++++ b/dix/devices.c
+@@ -447,6 +447,8 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent)
+     if (*prev != dev)
+       return FALSE;
++    ReleaseButtonsAndKeys(dev);
++
+     /* float attached devices */
+     if (IsMaster(dev))
+     {
+-- 
+1.7.9.1
+
index f17f72626e52b41cfb7442fbbffb99ad8ac07f6f..1b863e7ccfa108fc4f45b4760946cebb26a3829d 100644 (file)
@@ -36,3 +36,4 @@
 505_query_pointer_touchscreen.patch
 506_touchscreen_pointer_emulation_checks.patch
 507_touchscreen_fixes.patch
+508_device_off_release_buttons.patch