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

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



 ChangeLog                                               | 1750 +++++++++++++++-
 Makefile.am                                             |    8 
 conf/50-synaptics.conf                                  |    8 
 configure.ac                                            |   51 
 debian/changelog                                        |  145 +
 debian/control                                          |    7 
 debian/patches/122_revert_pressure_finger_default.patch |   45 
 debian/patches/125_option_rec_revert.patch              |  249 ++
 debian/patches/126_ubuntu_xi22.patch                    |   11 
 debian/patches/127_default_drag_lock.patch              |   13 
 debian/patches/128_disable_three_click_action.patch     |   13 
 debian/patches/129_tmp_pointer_drift.patch              |   47 
 debian/patches/130_tmp_touch_count_fix.patch            |  125 +
 debian/patches/series                                   |   19 
 include/Makefile.am                                     |    1 
 include/synaptics-properties.h                          |    2 
 man/Makefile.am                                         |    3 
 man/synaptics.man                                       |    4 
 man/syndaemon.man                                       |   41 
 src/Makefile.am                                         |   12 
 src/alpscomm.c                                          |   19 
 src/alpscomm.h                                          |   33 
 src/eventcomm.c                                         |  730 +++++-
 src/eventcomm.h                                         |   11 
 src/properties.c                                        |   73 
 src/ps2comm.c                                           |  101 
 src/ps2comm.h                                           |   15 
 src/psmcomm.c                                           |   37 
 src/synaptics.c                                         | 1078 ++++++---
 src/synapticsstr.h                                      |   79 
 src/synproto.c                                          |  156 +
 src/synproto.h                                          |   52 
 test/.gitignore                                         |    6 
 test/Makefile.am                                        |   18 
 test/eventcomm-test.c                                   |  331 +++
 test/fake-symbols.c                                     |  492 ++++
 test/fake-symbols.h                                     |  186 +
 test/test-pad.c                                         |  121 -
 test/testprotocol.c                                     |   82 
 tools/Makefile.am                                       |    3 
 tools/synclient.c                                       |    7 
 tools/syndaemon.c                                       |    7 
 42 files changed, 5133 insertions(+), 1058 deletions(-)

New commits:
commit 079e391788a079ca83489d37f1aba3ec72e8151f
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Feb 21 16:22:32 2012 +0100

    releasing version 1.5.99~git20120220-0ubuntu3

diff --git a/debian/changelog b/debian/changelog
index a2af8fd..14c70aa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu3) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu3) precise; urgency=low
 
   * Fix crash on multitouch devices when disabled while typing (LP: #931344)
     - Add temporary patch 130_tmp_touch_count_fix.patch
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 21 Feb 2012 16:14:22 +0100
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 21 Feb 2012 16:22:17 +0100
 
 xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu2) precise; urgency=low
 

commit 8a746c0bed8b90a7b2954200877e70a206b481bf
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Feb 21 16:19:00 2012 +0100

    Fix crash on multitouch devices when disabled while typing (LP: #931344)
    
    * Fix crash on multitouch devices when disabled while typing (LP: #931344)
      - Add temporary patch 130_tmp_touch_count_fix.patch

diff --git a/debian/changelog b/debian/changelog
index 3bcde23..a2af8fd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu3) UNRELEASED; urgency=low
+
+  * Fix crash on multitouch devices when disabled while typing (LP: #931344)
+    - Add temporary patch 130_tmp_touch_count_fix.patch
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 21 Feb 2012 16:14:22 +0100
+
 xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu2) precise; urgency=low
 
   * Prevent trackpad pointer drift (LP: #921082)
diff --git a/debian/patches/130_tmp_touch_count_fix.patch b/debian/patches/130_tmp_touch_count_fix.patch
new file mode 100644
index 0000000..6d33056
--- /dev/null
+++ b/debian/patches/130_tmp_touch_count_fix.patch
@@ -0,0 +1,125 @@
+From 5739a101d2f96ba4a0854202017d31f2b3dfee26 Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+Date: Tue, 21 Feb 2012 15:54:00 +0100
+Subject: [PATCH] Update touch state when device is off too
+
+If the device is turned off, usually by syndaemon to disable the
+touchpad while the typing, the touch state will not be updated with the
+latest hardware state changes. If a touch begins while the device is
+off and ends while the device is on, then the touch count will be
+decremented without any previous increment. A similar effect will occur
+if the device is on when the touch begins, but off when the touch ends.
+
+If the touch count goes negative, the index into the touch slot mask
+array will be out of bounds. This can corrupt memory and cause random
+crashes.
+
+Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+---
+ src/synaptics.c |   74 ++++++++++++++++++++++++++++++------------------------
+ 1 files changed, 41 insertions(+), 33 deletions(-)
+
+diff --git a/src/synaptics.c b/src/synaptics.c
+index 7b3f680..c736b6a 100644
+--- a/src/synaptics.c
++++ b/src/synaptics.c
+@@ -2596,6 +2596,42 @@ repeat_scrollbuttons(const InputInfoPtr pInfo,
+     return delay;
+ }
+ 
++/* Update the open slots and number of active touches */
++static void
++UpdateTouchState(InputInfoPtr pInfo, struct SynapticsHwState *hw)
++{
++#ifdef HAVE_MULTITOUCH
++    SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
++    int i;
++
++    for (i = 0; i < hw->num_mt_mask; i++)
++    {
++        if (hw->slot_state[i] == SLOTSTATE_OPEN)
++        {
++            priv->open_slots[priv->num_active_touches] = i;
++            priv->num_active_touches++;
++        } else if (hw->slot_state[i] == SLOTSTATE_CLOSE)
++        {
++            Bool found = FALSE;
++            int j;
++
++            for (j = 0; j < priv->num_active_touches - 1; j++)
++            {
++                if (priv->open_slots[j] == i)
++                    found = TRUE;
++
++                if (found)
++                    priv->open_slots[j] = priv->open_slots[j + 1];
++            }
++
++            priv->num_active_touches--;
++        }
++    }
++
++    SynapticsResetTouchHwState(hw);
++#endif
++}
++
+ static void
+ HandleTouches(InputInfoPtr pInfo, struct SynapticsHwState *hw)
+ {
+@@ -2675,40 +2711,9 @@ HandleTouches(InputInfoPtr pInfo, struct SynapticsHwState *hw)
+             xf86PostTouchEvent(pInfo->dev, slot, XI_TouchEnd, 0,
+                                hw->mt_mask[slot]);
+     }
+-            
+-out:
+-    /* Update the open slots and number of active touches */
+-    for (i = 0; i < hw->num_mt_mask; i++)
+-    {
+-        if (hw->slot_state[i] == SLOTSTATE_OPEN)
+-        {
+-            priv->open_slots[priv->num_active_touches] = i;
+-            priv->num_active_touches++;
+-        } else if (hw->slot_state[i] == SLOTSTATE_CLOSE)
+-        {
+-            Bool found = FALSE;
+-            int j;
+ 
+-            for (j = 0; j < priv->num_active_touches - 1; j++)
+-            {
+-                if (priv->open_slots[j] == i)
+-                    found = TRUE;
+-
+-                if (found)
+-                    priv->open_slots[j] = priv->open_slots[j + 1];
+-            }
+-
+-            priv->num_active_touches--;
+-        }
+-    }
+-
+-    /* We calculated the value twice, might as well double check our math */
+-    if (priv->num_active_touches != new_active_touches)
+-        xf86IDrvMsg(pInfo, X_WARNING,
+-                    "calculated wrong number of active touches (%d vs %d)\n",
+-                    priv->num_active_touches, new_active_touches);
+-
+-    SynapticsResetTouchHwState(hw);
++out:
++    UpdateTouchState(pInfo, hw);
+ #endif
+ }
+ 
+@@ -2741,7 +2746,10 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now,
+ 
+     /* If touchpad is switched off, we skip the whole thing and return delay */
+     if (para->touchpad_off == 1)
++    {
++	UpdateTouchState(pInfo, hw);
+ 	return delay;
++    }
+ 
+     /* apply hysteresis before doing anything serious. This cancels
+      * out a lot of noise which might surface in strange phenomena
+-- 
+1.7.9
+
diff --git a/debian/patches/series b/debian/patches/series
index 2ce9188..98cd143 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -20,3 +20,4 @@
 127_default_drag_lock.patch
 128_disable_three_click_action.patch
 129_tmp_pointer_drift.patch
+130_tmp_touch_count_fix.patch

commit dbad93abd4af35e1b0cd0b49737c994007dcd515
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Feb 20 11:55:43 2012 +0100

    releasing version 1.5.99~git20120220-0ubuntu2

diff --git a/debian/changelog b/debian/changelog
index ea64a27..3bcde23 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu2) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu2) precise; urgency=low
 
   * Prevent trackpad pointer drift (LP: #921082)
     - Add temporary patch 129_tmp_pointer_drift.patch from upstream
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 20 Feb 2012 11:51:07 +0100
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 20 Feb 2012 11:55:23 +0100
 
 xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu1) precise; urgency=low
 

commit 8a5fe35c6f869cc4dc53b0ab5d5fd3d1049266a9
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Feb 20 11:52:32 2012 +0100

    Prevent trackpad pointer drift (LP: #921082)
    
    * Prevent trackpad pointer drift (LP: #921082)
      - Add temporary patch 129_tmp_pointer_drift.patch from upstream

diff --git a/debian/changelog b/debian/changelog
index 7353dcd..ea64a27 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu2) UNRELEASED; urgency=low
+
+  * Prevent trackpad pointer drift (LP: #921082)
+    - Add temporary patch 129_tmp_pointer_drift.patch from upstream
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 20 Feb 2012 11:51:07 +0100
+
 xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu1) precise; urgency=low
 
   * Update to latest code in git (f9a9065)
diff --git a/debian/patches/129_tmp_pointer_drift.patch b/debian/patches/129_tmp_pointer_drift.patch
new file mode 100644
index 0000000..720da4f
--- /dev/null
+++ b/debian/patches/129_tmp_pointer_drift.patch
@@ -0,0 +1,47 @@
+From: Peter Hutterer <peter.hutterer@who-t.net>
+To: "X.Org Devel List" <xorg-devel@lists.freedesktop.org>
+Subject: [PATCH synaptics] Revert "Don't store fake events in the motion
+	history"
+Cc: Daniel Stone <daniel@freedesktop.org>
+
+This commit introduced a regression. On some touchpads, the pointer keeps
+moving in the last direction when the finger movement stops but the finger
+is left on the touchpad.
+
+Cause appears to be get_delta() which calculates the deltas based on the
+motion history but has no control flow for the lack of fake motion events
+in the history after this commit. Thus, under some conditions, the delta is
+always non-zero as the history does not change.
+
+Reproducer attached to bug
+https://bugs.freedesktop.org/show_bug.cgi?id=45278#c11
+
+X.Org Bug 45278 <http://bugs.freedesktop.org/show_bug.cgi?id=45278>
+
+This reverts commit c8b098214b44cf0585d78c460401ea7d143769f3.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+There is probably a more extensive fix, starting with figuring out why the
+timer still fires after enough movement to adding hooks for ignoring the
+motion history if we're from a timer. This requires more time that I have
+available atm.
+
+ src/synaptics.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/synaptics.c b/src/synaptics.c
+index 7b3f680..65b48ee 100644
+--- a/src/synaptics.c
++++ b/src/synaptics.c
+@@ -2887,7 +2887,7 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now,
+     priv->lastButtons = buttons;
+ 
+     /* generate a history of the absolute positions */
+-    if (inside_active_area && !from_timer)
++    if (inside_active_area)
+ 	store_history(priv, hw->x, hw->y, hw->millis);
+     return delay;
+ }
+-- 
+1.7.7.5
diff --git a/debian/patches/series b/debian/patches/series
index 00409ad..2ce9188 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -19,3 +19,4 @@
 126_ubuntu_xi22.patch
 127_default_drag_lock.patch
 128_disable_three_click_action.patch
+129_tmp_pointer_drift.patch

commit a675d36d7623a1aef31817ae0ab7f26953fd4d39
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Feb 20 11:13:19 2012 +0100

    releasing version 1.5.99+git20120220-0ubuntu1

diff --git a/debian/changelog b/debian/changelog
index 1a5553c..7353dcd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu1) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu1) precise; urgency=low
 
   * Update to latest code in git (f9a9065)
     - Scale single-touch values to multitouch axes (LP: #936856)
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 20 Feb 2012 10:58:37 +0100
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 20 Feb 2012 11:13:10 +0100
 
 xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu2) precise; urgency=low
 

commit ddb92c23de3ec7e78e3e4cd4e080c9065dccce0a
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Feb 20 10:59:51 2012 +0100

    Update to latest code in git (f9a9065)

diff --git a/ChangeLog b/ChangeLog
index f198cdf..df3f301 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+commit f9a906590e59383aef3c53faca98f0de40859f17
+Author: Chase Douglas <chase.douglas@canonical.com>
+Date:   Sat Feb 11 18:57:20 2012 +0100
+
+    Prefer multitouch over single-touch axis ranges
+    
+    We still use single-touch data in most cases, but sometimes the
+    multitouch axes have higher resolution. Since we use the same XI
+    valuators to report ST and MT data, we must pick one axis and scale the
+    other to match. This change picks the MT axis ranges.
+    
+    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
 commit e6032c34515a19ebac09090028f806d82ddfb62d
 Author: Chase Douglas <chase.douglas@canonical.com>
 Date:   Thu Feb 9 10:06:54 2012 -0800
diff --git a/debian/changelog b/debian/changelog
index 0a121ca..1a5553c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-input-synaptics (1.5.99~git20120220-0ubuntu1) UNRELEASED; urgency=low
+
+  * Update to latest code in git (f9a9065)
+    - Scale single-touch values to multitouch axes (LP: #936856)
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 20 Feb 2012 10:58:37 +0100
+
 xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu2) precise; urgency=low
 
   * Enable tap-and-drag locked drags by default

commit f9a906590e59383aef3c53faca98f0de40859f17
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Sat Feb 11 18:57:20 2012 +0100

    Prefer multitouch over single-touch axis ranges
    
    We still use single-touch data in most cases, but sometimes the
    multitouch axes have higher resolution. Since we use the same XI
    valuators to report ST and MT data, we must pick one axis and scale the
    other to match. This change picks the MT axis ranges.
    
    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 6ffe265..e97faa8 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -65,6 +65,10 @@ struct eventcomm_proto_data
      * exists for readability of the code.
      */
     BOOL need_grab;
+    int st_to_mt_offset_x;
+    double st_to_mt_scale_x;
+    int st_to_mt_offset_y;
+    double st_to_mt_scale_y;
 #ifdef HAVE_MTDEV
     struct mtdev *mtdev;
     int axis_map[MT_ABS_SIZE];
@@ -76,7 +80,16 @@ struct eventcomm_proto_data
 struct eventcomm_proto_data *
 EventProtoDataAlloc(void)
 {
-    return calloc(1, sizeof(struct eventcomm_proto_data));
+    struct eventcomm_proto_data *proto_data;
+
+    proto_data = calloc(1, sizeof(struct eventcomm_proto_data));
+    if (!proto_data)
+        return NULL;
+
+    proto_data->st_to_mt_scale_x = 1;
+    proto_data->st_to_mt_scale_y = 1;
+
+    return proto_data;
 }
 
 #ifdef HAVE_MTDEV
@@ -363,6 +376,7 @@ static void
 event_query_axis_ranges(InputInfoPtr pInfo)
 {
     SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
+    struct eventcomm_proto_data *proto_data = priv->proto_data;
     unsigned long absbits[NBITS(ABS_MAX)] = {0};
     unsigned long keybits[NBITS(KEY_MAX)] = {0};
     char buf[256] = {0};
@@ -396,6 +410,26 @@ event_query_axis_ranges(InputInfoPtr pInfo)
 		      &priv->minw, &priv->maxw,
 		      NULL, NULL);
 
+    if (priv->has_touch)
+    {
+        int st_minx = priv->minx;
+        int st_maxx = priv->maxx;
+        int st_miny = priv->miny;
+        int st_maxy = priv->maxy;
+
+        event_get_abs(pInfo, pInfo->fd, ABS_MT_POSITION_X, &priv->minx,
+                      &priv->maxx, &priv->synpara.hyst_x, &priv->resx);
+        event_get_abs(pInfo, pInfo->fd, ABS_MT_POSITION_Y, &priv->miny,
+                      &priv->maxy, &priv->synpara.hyst_y, &priv->resy);
+
+        proto_data->st_to_mt_offset_x = priv->minx - st_minx;
+        proto_data->st_to_mt_scale_x =
+            (priv->maxx - priv->minx) / (st_maxx - st_minx);
+        proto_data->st_to_mt_offset_y = priv->miny - st_miny;
+        proto_data->st_to_mt_scale_y =
+            (priv->maxy - priv->miny) / (st_maxy - st_miny);
+    }
+
     SYSCALL(rc = ioctl(pInfo->fd, EVIOCGBIT(EV_KEY, sizeof(keybits)), keybits));
     if (rc >= 0)
     {
@@ -569,6 +603,7 @@ EventReadHwState(InputInfoPtr pInfo,
     struct SynapticsHwState *hw = comm->hwState;
     SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
     SynapticsParameters *para = &priv->synpara;
+    struct eventcomm_proto_data *proto_data = priv->proto_data;
 
     SynapticsResetTouchHwState(hw);
 
@@ -644,10 +679,12 @@ EventReadHwState(InputInfoPtr pInfo,
 	    if (ev.code < ABS_MT_SLOT) {
 		switch (ev.code) {
 		case ABS_X:
-		    hw->x = ev.value;
+		    hw->x = ev.value * proto_data->st_to_mt_scale_x +
+			proto_data->st_to_mt_offset_x;
 		    break;
 		case ABS_Y:
-		    hw->y = ev.value;
+		    hw->y = ev.value * proto_data->st_to_mt_scale_y +
+			proto_data->st_to_mt_offset_y;
 		    break;
 		case ABS_PRESSURE:
 		    hw->z = ev.value;
@@ -816,10 +853,10 @@ EventReadDevDimensions(InputInfoPtr pInfo)
 
     if (event_query_is_touchpad(pInfo->fd, (proto_data) ? proto_data->need_grab : TRUE))
     {
-        event_query_axis_ranges(pInfo);
 #ifdef HAVE_MTDEV
         event_query_touch(pInfo);
 #endif
+        event_query_axis_ranges(pInfo);
     }
     event_query_model(pInfo->fd, &priv->model, &priv->id_vendor, &priv->id_product);
 

commit f985c47039e7b55a538e7fd773d0faeafba1054d
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Feb 13 20:52:12 2012 -0800

    releasing version 1.5.0+git20120210-0ubuntu2

diff --git a/debian/changelog b/debian/changelog
index a6788c4..0a121ca 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu2) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu2) precise; urgency=low
 
   * Enable tap-and-drag locked drags by default
   * Disable three-click action by default so three touch gestures work
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 13 Feb 2012 20:32:32 -0800
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 13 Feb 2012 20:51:56 -0800
 
 xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) precise; urgency=low
 

commit 2132cc443ea17111ba2fe6b05fa9e2e6908d2eba
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Feb 13 20:33:32 2012 -0800

    Disable three-click action by default so three touch gestures work

diff --git a/debian/changelog b/debian/changelog
index 29c38bc..a6788c4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
 xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu2) UNRELEASED; urgency=low
 
   * Enable tap-and-drag locked drags by default
+  * Disable three-click action by default so three touch gestures work
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 13 Feb 2012 20:28:36 -0800
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 13 Feb 2012 20:32:32 -0800
 
 xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) precise; urgency=low
 
diff --git a/debian/patches/128_disable_three_click_action.patch b/debian/patches/128_disable_three_click_action.patch
new file mode 100644
index 0000000..4db18da
--- /dev/null
+++ b/debian/patches/128_disable_three_click_action.patch
@@ -0,0 +1,13 @@
+Index: xserver-xorg-input-synaptics/src/synaptics.c
+===================================================================
+--- xserver-xorg-input-synaptics.orig/src/synaptics.c	2012-02-13 20:30:53.165083092 -0800
++++ xserver-xorg-input-synaptics/src/synaptics.c	2012-02-13 20:32:17.402508282 -0800
+@@ -497,7 +497,7 @@
+        otherwise clickFinger is always button 1. */
+     clickFinger1 = 1;
+     clickFinger2 = (priv->has_right || priv->has_middle) ? 1 : 3;
+-    clickFinger3 = (priv->has_right || priv->has_middle) ? 1 : 2;
++    clickFinger3 = 0; /* Disabled by default so three-touch gestures work */
+ 
+     /* Enable vert edge scroll */
+     vertEdgeScroll = TRUE;
diff --git a/debian/patches/series b/debian/patches/series
index 1c32bc4..00409ad 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -18,3 +18,4 @@
 125_option_rec_revert.patch
 126_ubuntu_xi22.patch
 127_default_drag_lock.patch
+128_disable_three_click_action.patch

commit 9bb3e799f8a8d0407257ff9d87c4d69d45d95a35
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Feb 13 20:30:30 2012 -0800

    Enable tap-and-drag locked drags by default

diff --git a/debian/changelog b/debian/changelog
index 7aa89be..29c38bc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu2) UNRELEASED; urgency=low
+
+  * Enable tap-and-drag locked drags by default
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Mon, 13 Feb 2012 20:28:36 -0800
+
 xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) precise; urgency=low
 
   * Update to latest code in git (e6032c3)
diff --git a/debian/patches/127_default_drag_lock.patch b/debian/patches/127_default_drag_lock.patch
new file mode 100644
index 0000000..d1c1823
--- /dev/null
+++ b/debian/patches/127_default_drag_lock.patch
@@ -0,0 +1,13 @@
+Index: xserver-xorg-input-synaptics/src/synaptics.c
+===================================================================
+--- xserver-xorg-input-synaptics.orig/src/synaptics.c	2012-02-13 20:28:22.178606998 -0800
++++ xserver-xorg-input-synaptics/src/synaptics.c	2012-02-13 20:28:22.438610574 -0800
+@@ -558,7 +558,7 @@
+     }
+     pars->scroll_button_repeat = xf86SetIntOption(opts,"ScrollButtonRepeat", 100);
+     pars->touchpad_off = xf86SetIntOption(opts, "TouchpadOff", 0);
+-    pars->locked_drags = xf86SetBoolOption(opts, "LockedDrags", FALSE);
++    pars->locked_drags = xf86SetBoolOption(opts, "LockedDrags", TRUE);
+     pars->locked_drag_time = xf86SetIntOption(opts, "LockedDragTimeout", 5000);
+     pars->tap_action[RT_TAP] = xf86SetIntOption(opts, "RTCornerButton", 2);
+     pars->tap_action[RB_TAP] = xf86SetIntOption(opts, "RBCornerButton", 3);
diff --git a/debian/patches/series b/debian/patches/series
index ae176a5..1c32bc4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -17,3 +17,4 @@
 124_syndaemon_events.patch
 125_option_rec_revert.patch
 126_ubuntu_xi22.patch
+127_default_drag_lock.patch

commit ec7394cfc10d2e2d3a36c3bac6b49034ce5611c0
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Fri Feb 10 18:28:04 2012 -0800

    releasing version 1.5.0+git20120210-0ubuntu1

diff --git a/debian/changelog b/debian/changelog
index 7d7b257..7aa89be 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) precise; urgency=low
 
   * Update to latest code in git (e6032c3)
   * Drop 127_multitouch.patch, merged upstream
@@ -6,7 +6,7 @@ xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) UNRELEASED; urgency=lo
   * Refresh 125_option_rec_revert.patch
   * Add 126_ubuntu_xi22.patch for ubuntu frankenserver support
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:24:01 -0800
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:27:53 -0800
 
 xserver-xorg-input-synaptics (1.5.0+git20120101-1ubuntu2) precise; urgency=low
 

commit f63248aa8e7b4e767ff93806981edb2491773cc7
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Fri Feb 10 18:24:20 2012 -0800

    Add 126_ubuntu_xi22.patch for ubuntu frankenserver support

diff --git a/debian/changelog b/debian/changelog
index d0518c6..7d7b257 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,8 +4,9 @@ xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) UNRELEASED; urgency=lo
   * Drop 127_multitouch.patch, merged upstream
   * Drop 126_default_speed.patch, no longer necessary
   * Refresh 125_option_rec_revert.patch
+  * Add 126_ubuntu_xi22.patch for ubuntu frankenserver support
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:21:47 -0800
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:24:01 -0800
 
 xserver-xorg-input-synaptics (1.5.0+git20120101-1ubuntu2) precise; urgency=low
 
diff --git a/debian/patches/126_ubuntu_xi22.patch b/debian/patches/126_ubuntu_xi22.patch
new file mode 100644
index 0000000..06e15b3
--- /dev/null
+++ b/debian/patches/126_ubuntu_xi22.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -64,7 +64,7 @@ AC_SUBST([sdkdir])
+ DRIVER_NAME=synaptics
+ AC_SUBST([DRIVER_NAME])
+ 
+-PKG_CHECK_MODULES(XI22, [inputproto >= 2.1.99.3] [xorg-server >= 1.11.99.901], HAVE_XI22="yes", HAVE_XI22="no")
++PKG_CHECK_MODULES(XI22, [inputproto >= 2.1.99.3] [xorg-server >= 1.11.3], HAVE_XI22="yes", HAVE_XI22="no")
+ if test "x$HAVE_XI22" = xyes; then
+     AC_DEFINE(HAVE_MULTITOUCH, 1, [XI2.2 available])
+ fi
diff --git a/debian/patches/series b/debian/patches/series
index 12b44ec..ae176a5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -16,3 +16,4 @@
 #123_order_ProcessTouch_for_numFingers.patch
 124_syndaemon_events.patch
 125_option_rec_revert.patch
+126_ubuntu_xi22.patch

commit 913472072ca6a0ccb3500bc5760eb7f053190244
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Fri Feb 10 18:21:55 2012 -0800

    Refresh 125_option_rec_revert.patch

diff --git a/debian/changelog b/debian/changelog
index 4532720..d0518c6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,8 +3,9 @@ xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) UNRELEASED; urgency=lo
   * Update to latest code in git (e6032c3)
   * Drop 127_multitouch.patch, merged upstream
   * Drop 126_default_speed.patch, no longer necessary
+  * Refresh 125_option_rec_revert.patch
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:17:35 -0800
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:21:47 -0800
 
 xserver-xorg-input-synaptics (1.5.0+git20120101-1ubuntu2) precise; urgency=low
 
diff --git a/debian/patches/125_option_rec_revert.patch b/debian/patches/125_option_rec_revert.patch
index 57b9883..a55aeeb 100644
--- a/debian/patches/125_option_rec_revert.patch
+++ b/debian/patches/125_option_rec_revert.patch
@@ -1,7 +1,5 @@
-diff --git b/test/fake-symbols.c a/test/fake-symbols.c
-index 2d94622..71c3bc5 100644
---- b/test/fake-symbols.c
-+++ a/test/fake-symbols.c
+--- a/test/fake-symbols.c
++++ b/test/fake-symbols.c
 @@ -26,7 +26,7 @@ xf86WaitForInput (int fd, int timeout)
  }
  
@@ -65,7 +63,7 @@ index 2d94622..71c3bc5 100644
  {
      return NULL;
  }
-@@ -85,7 +85,7 @@ xf86NameCmp(const char *s1, const char *s2)
+@@ -85,7 +85,7 @@ xf86NameCmp(const char *s1, const char *
  }
  
  _X_EXPORT char *
@@ -74,7 +72,7 @@ index 2d94622..71c3bc5 100644
  {
      return NULL;
  }
-@@ -196,8 +196,8 @@ xf86DeleteInput(InputInfoPtr pInp, int flags)
+@@ -196,8 +196,8 @@ xf86DeleteInput(InputInfoPtr pInp, int f
      return;
  }
  
@@ -85,7 +83,7 @@ index 2d94622..71c3bc5 100644
  {
      return NULL;
  }
-@@ -225,7 +225,7 @@ xf86PostKeyboardEvent(DeviceIntPtr      device,
+@@ -225,7 +225,7 @@ xf86PostKeyboardEvent(DeviceIntPtr
  }
  
  _X_EXPORT int
@@ -94,7 +92,7 @@ index 2d94622..71c3bc5 100644
  {
      return 0;
  }
-@@ -254,7 +254,7 @@ InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc)
+@@ -254,7 +254,7 @@ InitPtrFeedbackClassDeviceStruct(DeviceI
  _X_EXPORT int
  XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
                          int format, int mode, unsigned long len,
@@ -103,7 +101,7 @@ index 2d94622..71c3bc5 100644
  {
      return 0;
  }
-@@ -367,15 +367,15 @@ InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, Atom *labels,
+@@ -367,15 +367,15 @@ InitValuatorClassDeviceStruct(DeviceIntP
  }
  
  
@@ -123,7 +121,7 @@ index 2d94622..71c3bc5 100644
  {
      return NULL;
  }
-@@ -424,14 +424,14 @@ InitFocusClassDeviceStruct(DeviceIntPtr dev)
+@@ -424,14 +424,14 @@ InitFocusClassDeviceStruct(DeviceIntPtr
  
  #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
  void
@@ -140,11 +138,9 @@ index 2d94622..71c3bc5 100644
  {
  }
  
-diff --git b/test/fake-symbols.h a/test/fake-symbols.h
-index a297d28..dfe1355 100644
---- b/test/fake-symbols.h
-+++ a/test/fake-symbols.h
-@@ -1,38 +1,29 @@
+--- a/test/fake-symbols.h
++++ b/test/fake-symbols.h
+@@ -1,37 +1,29 @@
  #include <xorg-server.h>
  #include <xf86Xinput.h>
  
@@ -178,7 +174,6 @@ index a297d28..dfe1355 100644
  
  
 -extern char * xf86SetStrOption(OPTTYPE optlist, const char *name, CONST char *deflt);
--extern _X_EXPORT char *xf86SetStrOption(XF86OptionPtr optlist, const char *name, const char *deflt);
 -extern int xf86SetBoolOption(OPTTYPE optlist, const char *name, int deflt);
 -extern OPTTYPE xf86AddNewOption(OPTTYPE head, const char *name, const char *val);
 -extern CONST char* xf86FindOptionValue(OPTTYPE options, const char *name);
@@ -196,7 +191,7 @@ index a297d28..dfe1355 100644
  extern void xf86AddEnabledDevice(InputInfoPtr pInfo);
  extern void xf86RemoveEnabledDevice(InputInfoPtr pInfo);
  extern Atom XIGetKnownProperty(char *name);
-@@ -62,7 +53,7 @@ XISetDevicePropertyDeletable(DeviceIntPtr dev, Atom property, Bool deletable);
+@@ -61,7 +52,7 @@ XISetDevicePropertyDeletable(DeviceIntPt
  
  extern InputInfoPtr xf86FirstLocalDevice(void);
  extern void xf86DeleteInput(InputInfoPtr pInp, int flags);
@@ -205,7 +200,7 @@ index a297d28..dfe1355 100644
  extern Bool
  InitButtonClassDeviceStruct(DeviceIntPtr dev, int numButtons, Atom* labels,
                              CARD8 *map);
-@@ -74,7 +65,7 @@ xf86PostKeyboardEvent(DeviceIntPtr      device,
+@@ -73,7 +64,7 @@ xf86PostKeyboardEvent(DeviceIntPtr
                        unsigned int      key_code,
                        int               is_down);
  extern int
@@ -214,7 +209,7 @@ index a297d28..dfe1355 100644
  extern void
  xf86PostButtonEventP(DeviceIntPtr	device,
                       int		is_absolute,
-@@ -92,7 +83,7 @@ InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc);
+@@ -91,7 +82,7 @@ InitPtrFeedbackClassDeviceStruct(DeviceI
  extern int
  XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
                          int format, int mode, unsigned long len,
@@ -223,7 +218,7 @@ index a297d28..dfe1355 100644
  extern CARD32 GetTimeInMillis (void);
  
  extern int
-@@ -141,10 +132,10 @@ extern Bool
+@@ -140,10 +131,10 @@ extern Bool
  InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, Atom *labels,
                                int numMotionEvents, int mode);
  
@@ -237,7 +232,7 @@ index a297d28..dfe1355 100644
  
  extern int
  XIGetDeviceProperty (DeviceIntPtr dev, Atom property, XIPropertyValuePtr *value);
-@@ -168,12 +159,12 @@ extern Bool InitFocusClassDeviceStruct(DeviceIntPtr dev);
+@@ -167,12 +158,12 @@ extern Bool InitFocusClassDeviceStruct(D
  
  #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
  extern void

commit 76806ea7b569dbb0d5576a24299e82fc80633c0a
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Fri Feb 10 18:17:55 2012 -0800

    Drop 126_default_speed.patch, no longer necessary

diff --git a/debian/changelog b/debian/changelog
index 763d6d8..4532720 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,8 +2,9 @@ xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) UNRELEASED; urgency=lo
 
   * Update to latest code in git (e6032c3)
   * Drop 127_multitouch.patch, merged upstream
+  * Drop 126_default_speed.patch, no longer necessary
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:17:01 -0800
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:17:35 -0800
 
 xserver-xorg-input-synaptics (1.5.0+git20120101-1ubuntu2) precise; urgency=low
 
diff --git a/debian/patches/126_default_speed.patch b/debian/patches/126_default_speed.patch
deleted file mode 100644
index 62b37cb..0000000
--- a/debian/patches/126_default_speed.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/synaptics.c
-+++ b/src/synaptics.c
-@@ -581,7 +581,7 @@ static void set_default_parameters(Input
-     pars->press_motion_max_z = xf86SetIntOption(opts, "PressureMotionMaxZ", pressureMotionMaxZ);
-     pars->resolution_detect  = xf86SetBoolOption(opts, "ResolutionDetect", TRUE);
- 
--    pars->min_speed = xf86SetRealOption(opts, "MinSpeed", 0.4);
-+    pars->min_speed = xf86SetRealOption(opts, "MinSpeed", 0.25);
-     pars->max_speed = xf86SetRealOption(opts, "MaxSpeed", 0.7);
-     pars->accl = xf86SetRealOption(opts, "AccelFactor", accelFactor);
-     pars->trackstick_speed = xf86SetRealOption(opts, "TrackstickSpeed", 40);
diff --git a/debian/patches/series b/debian/patches/series
index 87644a2..12b44ec 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -16,4 +16,3 @@
 #123_order_ProcessTouch_for_numFingers.patch
 124_syndaemon_events.patch
 125_option_rec_revert.patch
-126_default_speed.patch

commit 942e078d7ffa76487f73c4f513b10e370c5ae247
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Fri Feb 10 18:17:12 2012 -0800

    Drop 127_multitouch.patch, merged upstream

diff --git a/debian/changelog b/debian/changelog
index f8ea55c..763d6d8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
 xserver-xorg-input-synaptics (1.5.0+git20120210-0ubuntu1) UNRELEASED; urgency=low
 
   * Update to latest code in git (e6032c3)
+  * Drop 127_multitouch.patch, merged upstream
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:14:58 -0800
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Fri, 10 Feb 2012 18:17:01 -0800
 
 xserver-xorg-input-synaptics (1.5.0+git20120101-1ubuntu2) precise; urgency=low
 
diff --git a/debian/patches/127_multitouch.patch b/debian/patches/127_multitouch.patch
deleted file mode 100644
index 87d25f3..0000000
--- a/debian/patches/127_multitouch.patch
+++ /dev/null
@@ -1,748 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index bb95403..166a4f8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -64,6 +64,11 @@ AC_SUBST([sdkdir])
- DRIVER_NAME=synaptics
- AC_SUBST([DRIVER_NAME])
- 
-+PKG_CHECK_MODULES(XI22, [inputproto >= 2.1.99.3] [xorg-server >= 1.11.3], HAVE_XI22="yes", HAVE_XI22="no")
-+if test "x$HAVE_XI22" = xyes; then
-+    AC_DEFINE(HAVE_MULTITOUCH, 1, [XI2.2 available])
-+fi
-+
- # -----------------------------------------------------------------------------
- #			Configuration options
- # -----------------------------------------------------------------------------
-@@ -116,6 +121,14 @@ case "${host}" in
- esac
- if test "x$BUILD_EVENTCOMM" = xyes; then
-     AC_DEFINE(BUILD_EVENTCOMM, 1, [Optional backend eventcomm enabled])
-+
-+    if test "x$HAVE_XI22" = xyes; then
-+        # Obtain compiler/linker options for mtdev
-+        PKG_CHECK_MODULES(MTDEV, mtdev, HAVE_MTDEV="yes", HAVE_MTDEV="no")
-+    fi
-+    if test "x$HAVE_XI22" = xyes && test "x$HAVE_MTDEV" = xyes; then
-+        AC_DEFINE(HAVE_MTDEV, 1, [MTDev available])
-+    fi
- fi
- if test "x$BUILD_PSMCOMM" = xyes; then
-     AC_DEFINE(BUILD_PSMCOMM, 1, [Optional backend psmcomm enabled])
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 5e04670..a6715e6 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -44,6 +44,8 @@ endif
- if BUILD_EVENTCOMM
- @DRIVER_NAME@_drv_la_SOURCES += \
- 	eventcomm.c eventcomm.h
-+@DRIVER_NAME@_drv_la_LIBADD = \
-+	$(MTDEV_LIBS)
- endif
- 


Reply to: