diff --git a/debian/changelog b/debian/changelog index 5818375..bc906d2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 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 index 0000000..91d2249 --- /dev/null +++ b/debian/patches/508_device_off_release_buttons.patch @@ -0,0 +1,37 @@ +From adaf1adecf5697455e9f3fb0234939113873f959 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +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 +Reviewed-by: Chase Douglas + +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 + diff --git a/debian/patches/series b/debian/patches/series index f17f726..1b863e7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -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