xorg-server: Changes to 'ubuntu'
debian/changelog | 7 +++
debian/patches/504_fix_no_coords.patch | 64 +++++++++++++++++++++++++++++++++
debian/patches/series | 1
3 files changed, 71 insertions(+), 1 deletion(-)
New commits:
commit 4becca0170464dfb291dab385e35c2534f488177
Author: Chase Douglas <chase.douglas@ubuntu.com>
Date: Wed Jun 22 13:42:44 2011 -0700
Fix event handling when neither X nor Y coordinates are set (LP: #806256)
* Fix event handling when neither X nor Y coordinates are set (LP: #806256)
- Added 504_fix_no_coords.patch
diff --git a/debian/changelog b/debian/changelog
index dcaa433..ec089d5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,14 @@
xorg-server (2:1.10.2.902-1ubuntu2) UNRELEASED; urgency=low
+ [ Bryce Harrington ]
* rules: patch needs to depend on stampdir, else it doesn't get created,
and 'debian/rules patch' malfunctions.
- -- Bryce Harrington <bryce@ubuntu.com> Tue, 05 Jul 2011 17:11:42 -0700
+ [ Chase Douglas ]
+ * Fix event handling when neither X nor Y coordinates are set (LP: #806256)
+ - Added 504_fix_no_coords.patch
+
+ -- Chase Douglas <chase.douglas@ubuntu.com> Thu, 07 Jul 2011 11:49:02 -0700
xorg-server (2:1.10.2.902-1ubuntu1) oneiric; urgency=low
diff --git a/debian/patches/504_fix_no_coords.patch b/debian/patches/504_fix_no_coords.patch
new file mode 100644
index 0000000..a9c8150
--- /dev/null
+++ b/debian/patches/504_fix_no_coords.patch
@@ -0,0 +1,64 @@
+Fix handling of events when the X and Y valuators are not set. This fixes cursor
+warping to (0,0) on Wacom button press events.
+
+--- a/dix/getevents.c
++++ b/dix/getevents.c
+@@ -1177,31 +1177,37 @@ GetPointerEvents(EventList *events, Devi
+ }
+ }
+
+- if (valuator_mask_isset(&mask, 0))
++ if (valuator_mask_isset(&mask, 0) || valuator_mask_isset(&mask, 1))
+ {
+- x = valuator_mask_get(&mask, 0);
+- pDev->last.untransformed_x = x;
+- } else
+- x = pDev->last.untransformed_x;
+- if (valuator_mask_isset(&mask, 1))
+- {
+- y = valuator_mask_get(&mask, 1);
+- pDev->last.untransformed_y = y;
+- } else
+- y = pDev->last.untransformed_y;
++ if (valuator_mask_isset(&mask, 0))
++ {
++ x = valuator_mask_get(&mask, 0);
++ pDev->last.untransformed_x = x;
++ } else
++ x = pDev->last.untransformed_x;
++ if (valuator_mask_isset(&mask, 1))
++ {
++ y = valuator_mask_get(&mask, 1);
++ pDev->last.untransformed_y = y;
++ } else
++ y = pDev->last.untransformed_y;
+
+- transformAbsolute(pDev, &mask, &x, &y);
++ transformAbsolute(pDev, &mask, &x, &y);
+
+- if (x != pDev->last.valuators[0])
+- valuator_mask_set(&mask, 0, x);
+- else
+- valuator_mask_unset(&mask, 0);
+- if (y != pDev->last.valuators[1])
+- valuator_mask_set(&mask, 1, y);
+- else
+- valuator_mask_unset(&mask, 1);
++ if (x != pDev->last.valuators[0])
++ valuator_mask_set(&mask, 0, x);
++ else
++ valuator_mask_unset(&mask, 0);
++ if (y != pDev->last.valuators[1])
++ valuator_mask_set(&mask, 1, y);
++ else
++ valuator_mask_unset(&mask, 1);
+
+- moveAbsolute(pDev, &x, &y, &mask);
++ moveAbsolute(pDev, &x, &y, &mask);
++ } else {
++ x = pDev->last.valuators[0];
++ y = pDev->last.valuators[1];
++ }
+ } else {
+ if (flags & POINTER_ACCELERATE) {
+ /* FIXME: Pointer acceleration only requires X and Y values. This
diff --git a/debian/patches/series b/debian/patches/series
index 8f62af8..6661354 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -35,3 +35,4 @@
501_xf86CoordinatesToWindow.patch
502_gestures-extension.patch
503_fix_masked_transformed_valuators.patch
+504_fix_no_coords.patch
Reply to: