xserver-xorg-input-evdev: Changes to 'ubuntu'
debian/changelog | 7 ++
debian/patches/102-fix_valuator_proximity_handling.patch | 44 +++++++++++++++
debian/patches/series | 1
3 files changed, 52 insertions(+)
New commits:
commit 5a22db5e79d0ffa9bf7871c8cb121d8ef9ed4efa
Author: Chase Douglas <chase.douglas@canonical.com>
Date: Thu Apr 14 16:10:38 2011 -0400
Another fix for event handling for devices that provide proximity events (LP: #573006)
diff --git a/debian/changelog b/debian/changelog
index f0e6699..1d50c1a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-input-evdev (1:2.6.0-1ubuntu12) UNRELEASED; urgency=low
+
+ * Another fix for event handling for devices that provide proximity events
+ (LP: #573006)
+
+ -- Chase Douglas <chase.douglas@ubuntu.com> Thu, 14 Apr 2011 16:09:18 -0400
+
xserver-xorg-input-evdev (1:2.6.0-1ubuntu11) natty; urgency=low
[ Chase Douglas ]
diff --git a/debian/patches/102-fix_valuator_proximity_handling.patch b/debian/patches/102-fix_valuator_proximity_handling.patch
new file mode 100644
index 0000000..8b014ae
--- /dev/null
+++ b/debian/patches/102-fix_valuator_proximity_handling.patch
@@ -0,0 +1,44 @@
+From 6139f903bc1942b160d3d94828d9aa66d9d3febd Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+Date: Thu, 14 Apr 2011 15:48:10 -0400
+Subject: [PATCH] Copy out of proximity values into current values selectively
+
+Otherwise, an event that causes us to go into proximity with some new
+valuator values will retain some old valuator values from when last in
+proximity. This change ensures that all values posted while out of
+proximity are accounted for.
+
+Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+---
+ src/evdev.c | 15 ++++++++-------
+ 1 files changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/src/evdev.c b/src/evdev.c
+index b767b0e..f31f492 100644
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -525,13 +525,14 @@ EvdevProcessProximityState(InputInfoPtr pInfo)
+ {
+ /* We're about to go into/out of proximity but have no abs events
+ * within the EV_SYN. Use the last coordinates we have. */
+- if (!pEvdev->abs_queued &&
+- valuator_mask_num_valuators(pEvdev->prox) > 0)
+- {
+- valuator_mask_copy(pEvdev->vals, pEvdev->prox);
+- valuator_mask_zero(pEvdev->prox);
+- pEvdev->abs_queued = 1;
+- }
++ for (i = 0; i < valuator_mask_size(pEvdev->prox); i++)
++ if (!valuator_mask_isset(pEvdev->vals, i) &&
++ valuator_mask_isset(pEvdev->prox, i))
++ valuator_mask_set(pEvdev->vals, i,
++ valuator_mask_get(pEvdev->prox, i));
++ valuator_mask_zero(pEvdev->prox);
++
++ pEvdev->abs_queued = valuator_mask_size(pEvdev->vals);
+ }
+
+ pEvdev->in_proximity = prox_state;
+--
+1.7.4.1
+
diff --git a/debian/patches/series b/debian/patches/series
index bcf8912..51dc9cb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
100-xi2.1.patch
101-gestures.patch
+102-fix_valuator_proximity_handling.patch
Reply to: