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

xserver-xorg-input-evdev: Changes to 'ubuntu'



 ChangeLog                                                          |  101 ++++
 configure.ac                                                       |   18 
 debian/changelog                                                   |   24 +
 debian/control                                                     |    6 
 debian/patches/0001-configure.ac-Fix-udev-libudev-dependency.patch |   31 +
 debian/patches/0002-default-resolution.patch                       |   40 +
 debian/patches/0003-copy-mt-vals.patch                             |  203 ++++++++++
 debian/patches/series                                              |    3 
 debian/xserver-xorg-input-evdev.manpages                           |    1 
 src/evdev.c                                                        |   35 +
 src/evdev.h                                                        |    6 
 11 files changed, 443 insertions(+), 25 deletions(-)

New commits:
commit 42a7cd13ca6116a1193d8f65b5a466edc8b49ba9
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Jan 10 11:43:39 2012 +0100

    releasing version 1:2.6.99.901-1ubuntu1

diff --git a/debian/changelog b/debian/changelog
index bf630b8..608bb2a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xserver-xorg-input-evdev (1:2.6.99.901-1ubuntu1) UNRELEASED; urgency=low
+xserver-xorg-input-evdev (1:2.6.99.901-1ubuntu1) precise; urgency=low
 
   * Add patch to set default resolution to 0
     - 0002-default-resolution.patch
   * Fix touch valuators
     - 0003-copy-mt-vals.patch
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 10 Jan 2012 11:33:24 +0100
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 10 Jan 2012 11:43:10 +0100
 
 xserver-xorg-input-evdev (1:2.6.99.901-1) experimental; urgency=low
 

commit 08a1619ee93f1106ce78fda033c3111c90dd0a71
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Jan 10 11:40:17 2012 +0100

    Fix touch valuators
    
    * Fix touch valuators
      - 0003-copy-mt-vals.patch

diff --git a/debian/changelog b/debian/changelog
index d6ba4e8..bf630b8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,8 +2,10 @@ xserver-xorg-input-evdev (1:2.6.99.901-1ubuntu1) UNRELEASED; urgency=low
 
   * Add patch to set default resolution to 0
     - 0002-default-resolution.patch
+  * Fix touch valuators
+    - 0003-copy-mt-vals.patch
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 10 Jan 2012 11:29:29 +0100
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 10 Jan 2012 11:33:24 +0100
 
 xserver-xorg-input-evdev (1:2.6.99.901-1) experimental; urgency=low
 
diff --git a/debian/patches/0003-copy-mt-vals.patch b/debian/patches/0003-copy-mt-vals.patch
new file mode 100644
index 0000000..e28a825
--- /dev/null
+++ b/debian/patches/0003-copy-mt-vals.patch
@@ -0,0 +1,203 @@
+From 93051a1a76c16f39193b3a4be72f5696b339e653 Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+Date: Tue, 3 Jan 2012 17:08:05 -0800
+Subject: [PATCH v2 xf86-input-evdev] Copy last valuator values into new touch valuator masks
+
+Evdev is a 100% stateful protocol. The following represents three
+touches. Two touches begin and end at the same time at (500, 500) and
+(1000, 1000). The third touch begins after the first two end, and is at
+(500, 500).
+
+ABS_MT_SLOT		0	/* Set touch slot */
+ABS_MT_TRACKING_ID	0	/* New touch with ID 0 in slot 0 */
+ABS_MT_POSITION_X	500	/* Initial X position */
+ABS_MT_POSITION_Y	500	/* Initial Y position */
+ABS_MT_SLOT		1	/* Set touch slot */
+ABS_MT_TRACKING_ID	1	/* New touch with ID 1 in slot 1 */
+ABS_MT_POSITION_X	1000	/* Initial X position */
+ABS_MT_POSITION_Y	1000	/* Initial Y position */
+SYNC				/* End of frame */
+ABS_MT_SLOT		0	/* Go back to slot 0 */
+ABS_MT_TRACKING_ID	-1	/* Touch in slot 0 ended */
+ABS_MT_SLOT		1	/* Go to slot 1 */
+ABS_MT_TRACKING_ID	-1	/* Touch in slot 1 ended */
+SYNC				/* End of frame */
+ABS_MT_SLOT		0	/* Go back to slot 0 */
+ABS_MT_TRACKING_ID	2	/* New touch in slot 0 with ID 2 */
+SYNC				/* End of frame */
+ABS_MT_TRACKING_ID	-1	/* Touch in last slot (0) ended */
+SYNC				/* End of frame */
+
+Note that touch 2 has the same X and Y position as touch 0. This is
+implied because no new value was emitted for slot 0. In fact, Linux will
+not emit an event in the same slot with the same event type and code
+unless the value has changed. Thus, we can only assume that all the MT
+valuators have the same values as they were when they were last sent for
+the given slot.
+
+This change adds an array of valuator mask to hold all the last valuator
+values that came from evdev for each slot. When a new touch begins, all
+the last values are copied into it.
+
+This patch assumes initial axis values of 0 in each slot. Linux and
+mtdev do not provide a facility to query the current values of axes in
+each slot yet. This may cause spurious incorrect touch valuator values
+at the beginning of an X session, but there's nothing we can do about it
+right now.
+
+Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+---
+Changes since v1:
+* Hold the last values *per-slot* instead of globally
+
+ src/evdev.c |   80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ src/evdev.h |    1 +
+ 2 files changed, 77 insertions(+), 4 deletions(-)
+
+diff --git a/src/evdev.c b/src/evdev.c
+index 82cdb00..ec6650e 100644
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -746,6 +746,24 @@ EvdevProcessTouch(InputInfoPtr pInfo)
+     valuator_mask_zero(pEvdev->mt_mask);
+ }
+ 
++static int
++num_slots(EvdevPtr pEvdev)
++{
++    int value = pEvdev->absinfo[ABS_MT_SLOT].maximum -
++                pEvdev->absinfo[ABS_MT_SLOT].minimum + 1;
++
++    /* If we don't know how many slots there are, assume at least 10 */
++    return value > 1 ? value : 10;
++}
++
++static int
++last_mt_vals_slot(EvdevPtr pEvdev)
++{
++    int value = pEvdev->cur_slot - pEvdev->absinfo[ABS_MT_SLOT].minimum;
++
++    return value < num_slots(pEvdev) ? value : -1;
++}
++
+ static void
+ EvdevProcessTouchEvent(InputInfoPtr pInfo, struct input_event *ev)
+ {
+@@ -757,16 +775,29 @@ EvdevProcessTouchEvent(InputInfoPtr pInfo, struct input_event *ev)
+         pEvdev->cur_slot = ev->value;
+     } else
+     {
++        int slot_index = last_mt_vals_slot(pEvdev);
++
+         if (pEvdev->slot_state == SLOTSTATE_EMPTY)
+             pEvdev->slot_state = SLOTSTATE_UPDATE;
+         if (ev->code == ABS_MT_TRACKING_ID) {
+-        if (ev->value >= 0)
+-            pEvdev->slot_state = SLOTSTATE_OPEN;
+-        else
+-            pEvdev->slot_state = SLOTSTATE_CLOSE;
++            if (ev->value >= 0) {
++                pEvdev->slot_state = SLOTSTATE_OPEN;
++
++                if (slot_index >= 0)
++                    valuator_mask_copy(pEvdev->mt_mask,
++                        pEvdev->last_mt_vals[slot_index]);
++                else
++                    xf86IDrvMsg(pInfo, X_WARNING,
++                                "Attempted to copy values from out-of-range "
++                                "slot, touch events may be incorrect.\n");
++            } else
++                pEvdev->slot_state = SLOTSTATE_CLOSE;
+         } else {
+             map = pEvdev->axis_map[ev->code];
+             valuator_mask_set(pEvdev->mt_mask, map, ev->value);
++            if (slot_index >= 0)
++                valuator_mask_set(pEvdev->last_mt_vals[slot_index], map,
++                                  ev->value);
+         }
+     }
+ }
+@@ -1256,6 +1287,24 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device)
+             goto out;
+         }
+ 
++        pEvdev->last_mt_vals = calloc(num_slots(pEvdev), sizeof(ValuatorMask *));
++        if (!pEvdev->last_mt_vals) {
++            xf86Msg(X_ERROR,
++                    "%s: failed to allocate MT last values mask array.\n",
++                    device->name);
++            goto out;
++        }
++
++        for (i = 0; i < num_slots(pEvdev); i++) {
++            pEvdev->last_mt_vals[i] = valuator_mask_new(num_mt_axes_total);
++            if (!pEvdev->last_mt_vals[i]) {
++                xf86Msg(X_ERROR,
++                        "%s: failed to allocate MT last values mask.\n",
++                        device->name);
++                goto out;
++            }
++        }
++
+         for (i = 0; i < EVDEV_MAXQUEUE; i++) {
+             pEvdev->queue[i].touchMask =
+                 valuator_mask_new(num_mt_axes_total);
+@@ -1318,6 +1367,17 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device)
+                     device->name);
+             goto out;
+         }
++
++        for (i = 0; i < num_slots(pEvdev); i++) {
++            for (axis = ABS_MT_TOUCH_MAJOR; axis < ABS_MAX; axis++) {
++                if (pEvdev->axis_map[axis] >= 0) {
++                    /* XXX: read initial values from mtdev when it adds support
++                     *      for doing so. */
++                    valuator_mask_set(pEvdev->last_mt_vals[i],
++                                      pEvdev->axis_map[axis], 0);
++                }
++            }
++        }
+     }
+ #endif
+ 
+@@ -1428,6 +1488,12 @@ out:
+     valuator_mask_free(&pEvdev->prox);
+ #ifdef MULTITOUCH
+     valuator_mask_free(&pEvdev->mt_mask);
++    if (pEvdev->last_mt_vals) {
++        for (i = 0; i < num_slots(pEvdev); i++)
++            valuator_mask_free(&pEvdev->last_mt_vals[i]);
++        free(pEvdev->last_mt_vals);
++        pEvdev->last_mt_vals = NULL;
++    }
+     for (i = 0; i < EVDEV_MAXQUEUE; i++)
+         valuator_mask_free(&pEvdev->queue[i].touchMask);
+ #endif
+@@ -1808,6 +1874,12 @@ EvdevProc(DeviceIntPtr device, int what)
+         valuator_mask_free(&pEvdev->prox);
+ #ifdef MULTITOUCH
+         valuator_mask_free(&pEvdev->mt_mask);
++        if (pEvdev->last_mt_vals) {
++            for (i = 0; i < num_slots(pEvdev); i++)
++                valuator_mask_free(&pEvdev->last_mt_vals[i]);
++            free(pEvdev->last_mt_vals);
++            pEvdev->last_mt_vals = NULL;
++        }
+         for (i = 0; i < EVDEV_MAXQUEUE; i++)
+             valuator_mask_free(&pEvdev->queue[i].touchMask);
+         if (pEvdev->mtdev)
+diff --git a/src/evdev.h b/src/evdev.h
+index 1713b89..309b215 100644
+--- a/src/evdev.h
++++ b/src/evdev.h
+@@ -158,6 +158,7 @@ typedef struct {
+     ValuatorMask *old_vals; /* old values for calculating relative motion */
+     ValuatorMask *prox;     /* last values set while not in proximity */
+     ValuatorMask *mt_mask;
++    ValuatorMask **last_mt_vals;
+     int cur_slot;
+     enum SlotState slot_state;
+ #ifdef MULTITOUCH
+-- 
+1.7.7.3
+
diff --git a/debian/patches/series b/debian/patches/series
index 397660d..ce65e8a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 0001-configure.ac-Fix-udev-libudev-dependency.patch
 0002-default-resolution.patch
+0003-copy-mt-vals.patch

commit 9da178d22a396de92cd1297d66084ea7e2432230
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Jan 10 11:30:27 2012 +0100

    Add patch to set default resolution to 0
    
    * Add patch to set default resolution to 0
      - 0002-default-resolution.patch

diff --git a/debian/changelog b/debian/changelog
index 0519494..d6ba4e8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-input-evdev (1:2.6.99.901-1ubuntu1) UNRELEASED; urgency=low
+
+  * Add patch to set default resolution to 0
+    - 0002-default-resolution.patch
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 10 Jan 2012 11:29:29 +0100
+
 xserver-xorg-input-evdev (1:2.6.99.901-1) experimental; urgency=low
 
   [ Timo Aaltonen ]
diff --git a/debian/patches/0002-default-resolution.patch b/debian/patches/0002-default-resolution.patch
new file mode 100644
index 0000000..7ebe0ac
--- /dev/null
+++ b/debian/patches/0002-default-resolution.patch
@@ -0,0 +1,40 @@
+From 8c55e94a6ac91fa856d37206c8a7eda1adcc6b9d Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+Date: Tue, 03 Jan 2012 23:31:43 +0000
+Subject: Set the default resolution to 0
+
+If we don't know the resolution, set it to 0. This is invalid, and tells
+the X client that we don't know the resolution, rather than reporting an
+incorrect value.
+
+This value was originally from commit
+6271494faa4c45f4fa10509f72e0515f2cef36c6, which is the initial commit
+from Adam Jackson adding absolute axis support.
+
+Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/src/evdev.c b/src/evdev.c
+index 9f3a22a..82cdb00 100644
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -1323,7 +1323,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device)
+ 
+     for (axis = ABS_X; axis < ABS_MT_SLOT; axis++) {
+         int axnum = pEvdev->axis_map[axis];
+-        int resolution = 10000;
++        int resolution = 0;
+ 
+         if (axnum == -1)
+             continue;
+@@ -1345,7 +1345,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device)
+ #ifdef MULTITOUCH
+     for (axis = ABS_MT_TOUCH_MAJOR; axis <= ABS_MAX; axis++) {
+         int axnum = pEvdev->axis_map[axis];
+-        int resolution = 10000;
++        int resolution = 0;
+         int j;
+         BOOL skip = FALSE;
+ 
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/debian/patches/series b/debian/patches/series
index e6f3ebc..397660d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 0001-configure.ac-Fix-udev-libudev-dependency.patch
+0002-default-resolution.patch

commit a619cd71e35e33b7aeb3edd01b4c3301ea37bb21
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 31 19:55:44 2011 +0100

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index f6b830a..0a85430 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-input-evdev (1:2.6.99.901-1) UNRELEASED; urgency=low
+xserver-xorg-input-evdev (1:2.6.99.901-1) experimental; urgency=low
 
   [ Timo Aaltonen ]
   * Remove obsolete .manpages.
@@ -11,7 +11,7 @@ xserver-xorg-input-evdev (1:2.6.99.901-1) UNRELEASED; urgency=low
   * Add patch to fix udev/libudev detection:
     - 0001-configure.ac-Fix-udev-libudev-dependency.patch
 
- -- Cyril Brulebois <kibi@debian.org>  Sat, 31 Dec 2011 18:51:03 +0100
+ -- Cyril Brulebois <kibi@debian.org>  Sat, 31 Dec 2011 19:55:39 +0100
 
 xserver-xorg-input-evdev (1:2.6.0-2) unstable; urgency=low
 

commit 11336a145e0bb797af0a81c56925678b79e35115
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 31 19:55:33 2011 +0100

    Add patch to fix udev/libudev detection: 0001-configure.ac-Fix-udev-libudev-dependency.patch

diff --git a/debian/changelog b/debian/changelog
index 7001934..f6b830a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,8 @@ xserver-xorg-input-evdev (1:2.6.99.901-1) UNRELEASED; urgency=low
   * Update build dependencies:
     - Add libudev-dev and libmtdev-dev.
     - Bump xserver-xorg-dev and x11proto-input-dev.
+  * Add patch to fix udev/libudev detection:
+    - 0001-configure.ac-Fix-udev-libudev-dependency.patch
 
  -- Cyril Brulebois <kibi@debian.org>  Sat, 31 Dec 2011 18:51:03 +0100
 
diff --git a/debian/patches/0001-configure.ac-Fix-udev-libudev-dependency.patch b/debian/patches/0001-configure.ac-Fix-udev-libudev-dependency.patch
new file mode 100644
index 0000000..b3fb246
--- /dev/null
+++ b/debian/patches/0001-configure.ac-Fix-udev-libudev-dependency.patch
@@ -0,0 +1,31 @@
+From 6f639c450c513c44b6eb7ddfd31e207ca83bcd39 Mon Sep 17 00:00:00 2001
+From: Cyril Brulebois <kibi@debian.org>
+Date: Sat, 31 Dec 2011 19:35:17 +0100
+Subject: [PATCH:xf86-input-evdev 1/2] configure.ac: Fix udev/libudev
+ dependency.
+
+In 683a55e504f4fc2d1c847c54986439a0c61b2f20, a dependency on libudev was
+added, but documented in configure.ac as a dependency on udev (which
+also happens to ship a pkg-config file).
+
+Signed-off-by: Cyril Brulebois <kibi@debian.org>
+---
+ configure.ac |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 57690c4..47f70b4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -46,7 +46,7 @@ XORG_DEFAULT_OPTIONS
+ 
+ # Obtain compiler/linker options from server and required extensions
+ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.10] xproto inputproto)
+-PKG_CHECK_MODULES(UDEV, udev)
++PKG_CHECK_MODULES(UDEV, libudev)
+ 
+ PKG_CHECK_MODULES(XI22, [inputproto >= 2.1.99.3] [xorg-server >= 1.11.99.901], HAVE_XI22="yes", HAVE_XI22="no")
+ 
+-- 
+1.7.7.3
+
diff --git a/debian/patches/series b/debian/patches/series
index e69de29..e6f3ebc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -0,0 +1 @@
+0001-configure.ac-Fix-udev-libudev-dependency.patch

commit 75763f974b5e53b600f38770267e052bfb6fdb10
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 31 19:53:12 2011 +0100

    Mention multitouch support.

diff --git a/debian/changelog b/debian/changelog
index 2f4be85..7001934 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,7 +4,7 @@ xserver-xorg-input-evdev (1:2.6.99.901-1) UNRELEASED; urgency=low
   * Remove obsolete .manpages.
 
   [ Cyril Brulebois ]
-  * New upstream release candidate.
+  * New upstream release candidate, with multitouch support.
   * Update build dependencies:
     - Add libudev-dev and libmtdev-dev.
     - Bump xserver-xorg-dev and x11proto-input-dev.

commit 693cd9272ff0f822abab081be6aff5b1a05ef78e
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 31 19:20:26 2011 +0100

    Update build dependencies.

diff --git a/debian/changelog b/debian/changelog
index 3c870fe..2f4be85 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,9 @@ xserver-xorg-input-evdev (1:2.6.99.901-1) UNRELEASED; urgency=low
 
   [ Cyril Brulebois ]
   * New upstream release candidate.
+  * Update build dependencies:
+    - Add libudev-dev and libmtdev-dev.
+    - Bump xserver-xorg-dev and x11proto-input-dev.
 
  -- Cyril Brulebois <kibi@debian.org>  Sat, 31 Dec 2011 18:51:03 +0100
 
diff --git a/debian/control b/debian/control
index f45858a..7989b8b 100644
--- a/debian/control
+++ b/debian/control
@@ -8,13 +8,15 @@ Build-Depends:
  dh-autoreconf,
  pkg-config,
  quilt,
- xserver-xorg-dev (>= 2:1.9.4),
+ xserver-xorg-dev (>= 2:1.11.99.901),
  x11proto-core-dev,
  x11proto-randr-dev,
- x11proto-input-dev,
+ x11proto-input-dev (>= 2.1.99.3),
  x11proto-kb-dev,
  libxkbfile-dev,
  xutils-dev (>= 1:7.5+4),
+ libudev-dev,
+ libmtdev-dev,
 Standards-Version: 3.9.1
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-input-evdev
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-input-evdev.git

commit a6ebe4d2d7655ab5ebdc055466e512ec8f541e04
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 31 18:51:26 2011 +0100

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index 3c729ea..94ab5d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,763 @@
+commit 4b76d80e934f5503c712289ce73d4e10cc79bba6
+Author: Cyril Brulebois <kibi@debian.org>
+Date:   Sat Dec 31 18:38:30 2011 +0100
+
+    evdev 2.6.99.901
+    
+    Signed-off-by: Cyril Brulebois <kibi@debian.org>
+
+commit 6dd6f2d3c6b2fee5f78b01618643c7f3ed0819c3
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Dec 29 10:37:38 2011 +1000
+
+    Require xserver 1.12 RC1
+    
+    Remove the ABI check hack, just check for the server version directly now
+    that we have one that definitely has the multitouch APIs.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 0c7c087f77132657dd8ee342963bb1b51d659571
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Dec 29 10:19:48 2011 +1000
+
+    Test for mtdev before assuming multitouch
+    
+    If the XI2.2 headers are present but mtdev isn't, build without MULTITOUCH
+    defined.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit ba9377c6d9e6d0d2813e471b516bb36902dae2ce
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Sat Dec 24 12:19:40 2011 +1000
+
+    Remove need for --enable-multitouch
+    
+    If we spot inputproto 2.1.99.3, we assume we have a capable X server. This
+    should really be a server version check, but the server version hasn't been
+    bumped yet.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 7f7606fc461dca1f087a756c85e22f2cc773d008
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Sat Dec 24 12:31:34 2011 +1000
+
+    Include config.h from evdev.h
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 0ba58f483e564bd815bae36f6272029693c1fd5c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Sat Dec 24 12:18:16 2011 +1000
+
+    Always include mt_mask in the evdev struct
+    
+    Even if MT support isn't available, include it in the build. The checks in
+    the code check whether mt_mask is non-NULL but they would all need ifdef
+    escaping otherwise.
+    
+    Leave the mtdev part inside the ifdef however, so that we don't need the
+    mtdev header if we don't build with multitouch.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5fb48757477b2effd69c8fe8722ad95b21dbf7f5
+Merge: 7909975 e99ab23
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Dec 23 08:16:54 2011 +1000
+
+    Merge branch 'multitouch'
+
+commit e99ab2314f712df8dd705b16008755f8b3095707
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Dec 20 15:08:06 2011 +1000
+
+    Don't count legacy and MT axes twice
+    
+    The kernel exports both ABS_X and ABS_MT_POSITION_X (and a couple others)
+    for a multi-touch capable device. For such devices, only count the axis once
+    since we submit ABS_MT_POSITION_X through ABS_X.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 191660189a01b9c96bb4c0fa1a2e5008ae666238
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Dec 20 14:14:16 2011 +1000
+
+    Add is_blacklisted_axis() helper
+    
+    The kernel exports a bunch of information as axis that shouldn't be an axis
+    and we don't treat it as axis in the server. Add this helper instead of
+    checking for the axis codes manually.
+    
+    No function change.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a1c3f8efbbff7f93e216ccdb32bd176a8ba33b09
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Dec 20 13:32:06 2011 +1000
+
+    Drop now-unnecessary XI 2.1 and XI 2.2 error suppression defines
+    
+    Gone since inputproto 2.1.99.3
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f3c628acc4f7399325756590cdc72e769341243c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Dec 20 10:56:22 2011 +1000
+
+    Map ABS_MT_POSITION_X/Y into ABS_X/Y
+    
+    MT axes are the same as traditional axes, so one into the other so we get
+    x/y coordinates regardless wich axes it comes from.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 7909975b0b965fbf0935bf012987a5368ea0e67a
+Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
+Date:   Thu Dec 15 12:26:37 2011 -0200
+
+    Fix relative events with swapped axes
+    
+    After we swap the axes, we only call valuator_mask_set for axes that are
+    not zero, so we need to unset the axes that became zero when swapped.
+    
+    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 8d6dfd13b0c4177305555294218e366a6cddc83f
+Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
+Date:   Wed Dec 14 15:23:36 2011 -0200
+
+    Fix absolute events with swapped axes
+    
+    We were correctly swapping the valuator values, but we were not
+    calling valuator_mask_unset() when needed, so the cursor kept jumping
+    to the edges.
+    
+    This patch does the swapping before the main "for", so we don't need to
+    store unswapped_{x,y} and unswapped_isset_{x,y} even when we don't need
+    to swap.
+    
+    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit fed454192ddc4ad94226040c657deb6abea3df88
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Dec 15 08:55:32 2011 +1000
+
+    Use xf86InitValuatorAxisStruct, the touch-specific version was dropped
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit cf93a21df1dd66118d3a1f5a0769d48f317de749
+Author: Chase Douglas <chase.douglas@canonical.com>
+Date:   Tue Nov 29 18:02:58 2011 -0800
+
+    Don't send pointer events for multitouch touchscreen devices
+    
+    Pointer events will be emulated by the server.
+    
+    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit fac1a41c75a7c4bfabff34dc8ed1dff2587c6011
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Nov 11 15:57:26 2011 +1000
+
+    Add the required defines to compile against the inputproto
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 3175a2a96d448a0b2584a58ab3d05fbebb11fab1
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Nov 2 09:53:34 2011 +1000
+
+    Print to the log if we find multitouch axes.
+    
+    No real effect on the code, but it helps to have that line in the log when
+    searching for driver issues.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5e9b027807cc205dc9c4efbb8360ac4b20317682
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 31 08:58:18 2011 +1000
+
+    Replace 0/1 button values with enums
+    
+    BUTTON_PRESS is much harder to confuse with a button number than a simple 1.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 2ce305129ca94394096f4d697d51eb120de2940b
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Oct 26 13:21:18 2011 +1000
+
+    Skip event posting for empty slots.
+    
+    ABS_MT_SLOT comes before any other events. The following order of events
+    is common for protocol B devices (and mtdev):
+    
+    ...
+    EV_SYN
+    ABS_MT_SLOT        → posting here means we miss on the position information
+    ABS_MT_POSITION_X
+    ABS_MT_POSITION_Y
+    ABS_MT_SLOT
+    ABS_MT_POSITION_X
+    ABS_MT_POSITION_Y
+    EV_SYN
+    
+    Store the stot state as SLOT_EMPTY after posting an event (i.e. EV_SYN and
+    ABS_MT_SLOT) and then don't post until the next slot/syn event.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 9411749f76c31a8054ded62a6fb767c8135b4d4e
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Oct 26 13:09:30 2011 +1000
+
+    Replace open_slot/close_slot with a SlotState enum
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 239e972be1f2c6a984dd6c5aecce710d0b866257
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Oct 26 11:14:04 2011 +1000
+
+    Simplify a condition, only the event type differs here
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 6127923fe0d50cb9b9ac4ae0a3876ba6f180137c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Oct 26 10:51:16 2011 +1000
+
+    When resetting the queue, don't reset the touchMask
+    
+    Otherwise we segfault after the first SYN event
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit fc4f98153c2608389d87e37316036a31fb1021e7
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Oct 26 09:59:34 2011 +1000
+
+    MT axes are counted separately, make sure they're initialized too.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit fabee66bcc7260ec50c3091be3f9b503eea65e61
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Oct 25 15:06:38 2011 +1000
+
+    0 is the value for "unknown/unlimited" number of touches
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 91d90a79593369ba1079d06a75f09ceaa9143768
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Oct 25 14:55:47 2011 +1000
+
+    Use mtdev API to allocate/free mtdev structs
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit c1b89bda12c1897120bace941625cfa27e547458
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Oct 25 14:52:26 2011 +1000
+
+    Remove duplicate line
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 907b7cad3fd892ca3349cd18e9ccdc5659027b40
+Author: Chase Douglas <chase.douglas@canonical.com>
+Date:   Thu Dec 2 18:01:41 2010 -0500
+
+    Ensure touchpad events are always processed with MT
+    
+    Without this change, an MT touchpad in relative mode could end a touch
+    while not resetting the oldMask used to calculate relative values. This
+    fix allows a Magic Trackpad to behave as a relative mode device again.
+    
+    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit c9a2b4e9ce9b15e57241184df78c72ec8f6a4705
+Author: Chase Douglas <chase.douglas@canonical.com>
+Date:   Mon Nov 8 14:35:02 2010 -0500
+
+    Use MTDev for multitouch devices
+    
+    MTDev translates all multitouch devices to the slotted evdev protocol.
+    This provides a clean and uniform interface and reduces message handling
+    inside the input module and X.
+    
+    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit e18abd0049421a98e61c15c2d56cfe2821cf4739
+Author: Chase Douglas <chase.douglas@canonical.com>
+Date:   Mon Nov 8 11:08:01 2010 -0500
+
+    Add experimental XI 2.1 multitouch support
+    
+    This multitouch addition only supports slotted MT evdev protocol
+    devices. Support must be enabled at configure time using
+    --enable-multitouch.
+    
+    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+    
+    Amendments: XI_TouchMotion -> XI_TouchUpdate, rename mtMask to mt_mask
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 683a55e504f4fc2d1c847c54986439a0c61b2f20
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Oct 25 09:59:50 2011 +1000
+
+    Use a new "Virtual Device" boolean property to mark virtual devices
+    
+    Use udev to check for the device's sysfs path, if it contains LNXSYSTM it's
+    a kernel-emulated device. This property can then be used to determine if
+    there are any real devices connected, allowing the desktop environment to
+    e.g. turn off the touchpad whenever there's a mouse attached.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a9cdb6590cdf72917cdfeb17e2fcc6a110b2c7d1
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Nov 11 07:31:02 2011 +1000
+
+    Move misplaced #endif caused by smooth-scrolling merge
+    
+    Bad conflict resolution in xf86-input-evdev-2.6.0-30-g745fca0
+    
+    Reported-by: Sebastian Glita <glseba@yahoo.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit dd000dd4fa118529809632e610a0a439d7467096
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Nov 9 16:04:06 2011 +1000
+
+    Bump to 2.6.99
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 745fca03a20117583bc18c7134583311ff52c29c
+Merge: eede8cc b450efd
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Nov 9 16:01:48 2011 +1000
+
+    Merge branch 'smooth-scrolling'
+    
+    Conflicts:
+    	src/evdev.c
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit b450efdf95999cad08de23ce069f04a66bdae24b
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Aug 19 11:15:09 2011 +1000
+
+    Support smooth scrolling on REL_WHEEL, REL_HWHEEL and REL_DIAL
+    
+    Automatic smooth scrolling setup for these axes, with REL_WHEEL and REL_DIAL
+    both mapping into vscrolling. REL_WHEEL is the preferred axis.
+    
+    Mouse wheel emulation is not yet updated for smooth scrolling.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit eede8ccffc1a831f4de89403edc8dffd52494e8b
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Oct 25 15:43:38 2011 +1000
+
+    Don't crop long value from EvdevBitIsSet.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 2aba790ed3acc3ece5e56dac088e0a0a4a04b45d
+Author: Jools Wills <jools@oxfordinspire.co.uk>
+Date:   Sun Oct 30 23:19:21 2011 +0000
+
+    emuThird: Use xf86SetIntOption, not xf86SetBoolOption for integer values
+    
+    Signed-off-by: Jools Wills <jools@oxfordinspire.co.uk>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 49693892ce35e95674fbb3d2a067c8fa0227da87
+Author: Max Schwarz <Max@x-quadraht.de>
+Date:   Mon Oct 17 21:01:22 2011 +0200
+
+    type-safe inline functions for bitmask manipulation
+    
+    We can't use BitIsSet/SetBit from the server (inputstr.h) since they
+    operate on byte arrays. EvdevSetBit is added in preparation for the
+    "smooth-scrolling on wheel emulation" patch.
+    
+    Signed-off-by: Max Schwarz <Max@x-quadraht.de>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 070f30e08956e7fa8b7f9ca6b94fee3ef39caa1e
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 15 11:34:12 2011 +1000
+
+    Exit axis labelling if axes are neither rel nor abs
+    
+    No actual effect since labels_len is always 0 anyway but let's make the
+    return more explicit.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit ffe35b6c2566fc2a3f418185a61a12c7f377affd
+Author: Terry Lambert <tlambert@chromium.org>
+Date:   Fri Jul 15 17:23:20 2011 -0700
+
+    xf86-input-evdev: Return proper default for unknown values in pInfo->device_control.
+    
+    Signed-off-by: Terry Lambert <tlambert@chromium.org>
+    Reviewed-by: Stephane Marchesin <marcheu@chromium.org>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5069e053354ad6adfcbb08c962bff93b607dec3d
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri May 27 16:20:03 2011 +1000
+
+    Remove unused misc_label and val
+    
+    evdev.c: In function 'EvdevInitAxesLabels':
+    evdev.c:2192:11: warning: variable 'misc_label' set but not used
+    [-Wunused-but-set-variable]
+    obsolete with 880ad1e19afd83ac115948b67d4049e16cb12df0
+    
+    emuWheel.c: In function 'EvdevWheelEmuPreInit':
+    emuWheel.c:252:10: warning: variable 'val' set but not used
+    [-Wunused-but-set-variable]
+    obsolete with b0737bdbd1f6e601eb4984b6f4cb49279190984c
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 0b9fad23a3d464ac064521d0e29f036b0ffdc9b8
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri May 27 16:17:12 2011 +1000
+
+    Print abs axes ranges on verbosity 6.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit b79776cf8caa2b8db2984177661698da862befa6
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Jun 15 10:22:39 2011 +1000
+
+    Require server 1.10
+    
+    We require ABI 12.2 in the driver, enforce it through pkg-config.
+    Technically ABI 12.2 is first available in 1.9.99.902 but 1.10 looks so much
+    nicer.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit a52cd1cab2ae84442758de5155c5ec1417a7d16d
+Author: Daniel Kurtz <djkurtz@google.com>
+Date:   Tue Jun 14 18:09:00 2011 +0800
+
+    Set prop_product_id undeletable
+    
+    prop_invert was accidentally being set undeletable twice.


Reply to: