[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu-natty'



 debian/changelog                       |    7 +++
 debian/patches/504_fix_no_coords.patch |   64 +++++++++++++++++++++++++++++++++
 debian/patches/series                  |    1 
 3 files changed, 72 insertions(+)

New commits:
commit 2b100530e0d03069d26574d47304ba5e8a4c8eeb
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Mon Aug 1 15:39:19 2011 +1000

    Pull patch from Chase fixing pointer events for Wacom tablets

diff --git a/debian/changelog b/debian/changelog
index db37153..ccde792 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.10.1-1ubuntu1.2) natty-proposed; urgency=low
+
+  * debian/patchs/504_fix_no_coords.patch:
+    - Fix event handling when neither X nor Y coordinates are set (LP: #806256)
+
+ -- Christopher James Halse Rogers <raof@ubuntu.com>  Tue, 26 Jul 2011 17:07:41 +1000
+
 xorg-server (2:1.10.1-1ubuntu1.1) natty-proposed; urgency=low
 
   [ Chase Douglas ]
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 4e6ea40..60861db 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -37,3 +37,4 @@
 501_xf86CoordinatesToWindow.patch
 502_gestures-extension.patch
 503_fix_masked_transformed_valuators.patch
+504_fix_no_coords.patch


Reply to: