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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

