ChangeLog | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 8 +++-- debian/changelog | 6 +++ man/synaptics.man | 5 --- src/eventcomm.c | 2 - src/synaptics.c | 47 ++++++++++++++++++++++++++---- src/synproto.c | 27 ++++++++++++++++- src/synproto.h | 3 + 8 files changed, 165 insertions(+), 16 deletions(-)
New commits: commit b0c4db73bea1ee1b0292f7d8cd8c6d0bf1fdcfcc Author: Cyril Brulebois <k...@debian.org> Date: Mon May 7 01:13:11 2012 +0200 Upload to unstable. diff --git a/debian/changelog b/debian/changelog index 2083b25..121024a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -xserver-xorg-input-synaptics (1.6.0-1) UNRELEASED; urgency=low +xserver-xorg-input-synaptics (1.6.0-1) unstable; urgency=low * New upstream release. - -- Cyril Brulebois <k...@debian.org> Mon, 07 May 2012 01:12:35 +0200 + -- Cyril Brulebois <k...@debian.org> Mon, 07 May 2012 01:13:08 +0200 xserver-xorg-input-synaptics (1.5.99.904-2) unstable; urgency=low commit afeef0e5f8b966e9a017b51e2824fdc3e69ca3aa Author: Cyril Brulebois <k...@debian.org> Date: Mon May 7 01:12:45 2012 +0200 New upstream release. diff --git a/ChangeLog b/ChangeLog index b178b50..45c61db 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,86 @@ +commit a1162f80324c379bc7581e53275e8ff6d569f8b0 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Thu May 3 08:06:32 2012 +1000 + + synaptics 1.6.0 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 52e194b76c9598e0fbf556e3aa97168ed4f0e2b6 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed May 2 10:16:30 2012 +1000 + + Fix coasting for negative scroll directions + + 1874094f0e99d8db319f6cf769ce5a25c9bc490c introduced negative scroll + directions. Coasting assumed always-positive increments and triggered an + endless scrolling loop. + + Reported-by: Matthias Clasen <mcla...@redhat.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Chase Douglas <chase.doug...@canonical.com> + +commit 6f086b86e4bd3c720289e91fdbb933bf3e559e72 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed May 2 09:16:27 2012 +1000 + + Fail if no backends can be found + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Alan Coopersmith <alan.coopersm...@oracle.com> + Reviewed-by: Chase Douglas <chase.doug...@canonical.com> + +commit 655d3100fc3f06e714ec4aa01607d86509952e4b +Author: Niveditha Rau <niveditha....@oracle.com> +Date: Mon Apr 30 14:51:07 2012 -0700 + + Include a build for solaris + + Signed-off-by: Niveditha Rau <niveditha....@oracle.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit d13e83b921a398b9472b07874cf5061c8a0ea6a6 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Mon Apr 30 11:39:49 2012 +1000 + + Force SLOTSTATE_EMPTY on DeviceOff + + SLOTSTATE_OPEN_EMPTY on resume leads to erroneously detected touches. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Chase Douglas <chase.doug...@canonical.com> + +commit cc595bd323aab2b0ef7b41fded2f0b5571cf0a8e +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Mon Apr 30 10:47:14 2012 +1000 + + Reset all hardware state on DEVICE_OFF (#49161) + + Reset all state on DeviceOff to avoid stuck buttons on resume. + + X.Org Bug 49161 <http://bugs.freedesktop.org/show_bug.cgi?id=49161> + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Chase Douglas <chase.doug...@canonical.com> + +commit e19fff64f76200291c22d6b822bb4e8b06816745 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Mon Apr 30 09:30:53 2012 +1000 + + man: fix hyphenation + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 3cc828b4764c101f9acd0db9ee3638036ec7a948 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Mon Apr 30 09:28:39 2012 +1000 + + man: drop mention of shm configuration + + SHM is for debugging only now, not configuration. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + commit 085662e9fe13d46b9633f1b7b9e8f95bacdec30c Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Apr 27 09:20:56 2012 +1000 diff --git a/debian/changelog b/debian/changelog index 0030204..2083b25 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-input-synaptics (1.6.0-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Cyril Brulebois <k...@debian.org> Mon, 07 May 2012 01:12:35 +0200 + xserver-xorg-input-synaptics (1.5.99.904-2) unstable; urgency=low * Add a build-dep on libmtdev-dev now that X server 1.12 is in sid, commit a1162f80324c379bc7581e53275e8ff6d569f8b0 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu May 3 08:06:32 2012 +1000 synaptics 1.6.0 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 3238e32..e5b92f9 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], - [1.5.99.904], + [1.6.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit 52e194b76c9598e0fbf556e3aa97168ed4f0e2b6 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Wed May 2 10:16:30 2012 +1000 Fix coasting for negative scroll directions 1874094f0e99d8db319f6cf769ce5a25c9bc490c introduced negative scroll directions. Coasting assumed always-positive increments and triggered an endless scrolling loop. Reported-by: Matthias Clasen <mcla...@redhat.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Chase Douglas <chase.doug...@canonical.com> diff --git a/src/synaptics.c b/src/synaptics.c index 6dc8004..77eb5be 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -2625,7 +2625,8 @@ HandleScrolling(SynapticsPrivate *priv, struct SynapticsHwState *hw, if (priv->scroll.coast_speed_y) { double dtime = (hw->millis - priv->scroll.last_millis) / 1000.0; - double ddy = para->coasting_friction * dtime * para->scroll_dist_vert; + double ddy = para->coasting_friction * dtime * abs(para->scroll_dist_vert); + priv->scroll.delta_y += priv->scroll.coast_speed_y * dtime; delay = MIN(delay, POLL_MS); if (abs(priv->scroll.coast_speed_y) < ddy) { @@ -2638,7 +2639,7 @@ HandleScrolling(SynapticsPrivate *priv, struct SynapticsHwState *hw, if (priv->scroll.coast_speed_x) { double dtime = (hw->millis - priv->scroll.last_millis) / 1000.0; - double ddx = para->coasting_friction * dtime * para->scroll_dist_horiz; + double ddx = para->coasting_friction * dtime * abs(para->scroll_dist_horiz); priv->scroll.delta_x += priv->scroll.coast_speed_x * dtime; delay = MIN(delay, POLL_MS); if (abs(priv->scroll.coast_speed_x) < ddx) { commit 6f086b86e4bd3c720289e91fdbb933bf3e559e72 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Wed May 2 09:16:27 2012 +1000 Fail if no backends can be found Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Alan Coopersmith <alan.coopersm...@oracle.com> Reviewed-by: Chase Douglas <chase.doug...@canonical.com> diff --git a/configure.ac b/configure.ac index dbf3fec..3238e32 100644 --- a/configure.ac +++ b/configure.ac @@ -120,7 +120,7 @@ case "${host}" in BUILD_PS2COMM="yes" ;; *) - AC_MSG_RESULT([none]) + AC_MSG_ERROR([Cannot find suitable backends for this platform.]) ;; esac if test "x$BUILD_EVENTCOMM" = xyes; then commit 655d3100fc3f06e714ec4aa01607d86509952e4b Author: Niveditha Rau <niveditha....@oracle.com> Date: Mon Apr 30 14:51:07 2012 -0700 Include a build for solaris Signed-off-by: Niveditha Rau <niveditha....@oracle.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index eaa1c98..dbf3fec 100644 --- a/configure.ac +++ b/configure.ac @@ -115,6 +115,10 @@ case "${host}" in BUILD_PS2COMM="yes" BUILD_PSMCOMM="yes" ;; +*solaris*) + AC_MSG_RESULT([ps2comm alpscomm]) + BUILD_PS2COMM="yes" + ;; *) AC_MSG_RESULT([none]) ;; commit d13e83b921a398b9472b07874cf5061c8a0ea6a6 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Mon Apr 30 11:39:49 2012 +1000 Force SLOTSTATE_EMPTY on DeviceOff SLOTSTATE_OPEN_EMPTY on resume leads to erroneously detected touches. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Chase Douglas <chase.doug...@canonical.com> diff --git a/src/eventcomm.c b/src/eventcomm.c index 741f988..4ef8ad6 100644 --- a/src/eventcomm.c +++ b/src/eventcomm.c @@ -662,7 +662,7 @@ EventReadHwState(InputInfoPtr pInfo, SynapticsParameters *para = &priv->synpara; struct eventcomm_proto_data *proto_data = priv->proto_data; - SynapticsResetTouchHwState(hw); + SynapticsResetTouchHwState(hw, FALSE); /* Reset cumulative values if buttons were not previously pressed */ if (!hw->left && !hw->right && !hw->middle) diff --git a/src/synaptics.c b/src/synaptics.c index 935650d..6dc8004 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -1619,7 +1619,7 @@ timerFunc(OsTimerPtr timer, CARD32 now, pointer arg) priv->hwState->millis += now - priv->timer_time; SynapticsCopyHwState(hw, priv->hwState); - SynapticsResetTouchHwState(hw); + SynapticsResetTouchHwState(hw, FALSE); delay = HandleState(pInfo, hw, hw->millis, TRUE); priv->timer_time = now; @@ -1659,7 +1659,7 @@ ReadInput(InputInfoPtr pInfo) int delay = 0; Bool newDelay = FALSE; - SynapticsResetTouchHwState(hw); + SynapticsResetTouchHwState(hw, FALSE); while (SynapticsGetHwState(pInfo, priv, hw)) { /* Semi-mt device touch slots do not track touches. When there is a @@ -3017,7 +3017,7 @@ UpdateTouchState(InputInfoPtr pInfo, struct SynapticsHwState *hw) } } - SynapticsResetTouchHwState(hw); + SynapticsResetTouchHwState(hw, FALSE); #endif } diff --git a/src/synproto.c b/src/synproto.c index cf54c4d..8e67800 100644 --- a/src/synproto.c +++ b/src/synproto.c @@ -153,11 +153,11 @@ SynapticsResetHwState(struct SynapticsHwState *hw) hw->middle = 0; memset(hw->multi, 0, sizeof(hw->multi)); - SynapticsResetTouchHwState(hw); + SynapticsResetTouchHwState(hw, TRUE); } void -SynapticsResetTouchHwState(struct SynapticsHwState *hw) +SynapticsResetTouchHwState(struct SynapticsHwState *hw, Bool set_slot_empty) { #ifdef HAVE_MULTITOUCH int i; @@ -175,7 +175,7 @@ SynapticsResetTouchHwState(struct SynapticsHwState *hw) case SLOTSTATE_OPEN: case SLOTSTATE_OPEN_EMPTY: case SLOTSTATE_UPDATE: - hw->slot_state[i] = SLOTSTATE_OPEN_EMPTY; + hw->slot_state[i] = set_slot_empty ? SLOTSTATE_EMPTY : SLOTSTATE_OPEN_EMPTY; break; default: diff --git a/src/synproto.h b/src/synproto.h index 7f80bcd..413579d 100644 --- a/src/synproto.h +++ b/src/synproto.h @@ -120,7 +120,7 @@ extern void SynapticsHwStateFree(struct SynapticsHwState **hw); extern void SynapticsCopyHwState(struct SynapticsHwState *dst, const struct SynapticsHwState *src); extern void SynapticsResetHwState(struct SynapticsHwState *hw); -extern void SynapticsResetTouchHwState(struct SynapticsHwState *hw); +extern void SynapticsResetTouchHwState(struct SynapticsHwState *hw, Bool force_empty); extern Bool SynapticsIsSoftButtonAreasValid(int *values); commit cc595bd323aab2b0ef7b41fded2f0b5571cf0a8e Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Mon Apr 30 10:47:14 2012 +1000 Reset all hardware state on DEVICE_OFF (#49161) Reset all state on DeviceOff to avoid stuck buttons on resume. X.Org Bug 49161 <http://bugs.freedesktop.org/show_bug.cgi?id=49161> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Chase Douglas <chase.doug...@canonical.com> diff --git a/src/synaptics.c b/src/synaptics.c index 51ecda5..935650d 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -1074,6 +1074,39 @@ DeviceOn(DeviceIntPtr dev) return Success; } +static void +SynapticsReset(SynapticsPrivate *priv) +{ + SynapticsResetHwState(priv->hwState); + SynapticsResetHwState(priv->local_hw_state); + SynapticsResetHwState(priv->old_hw_state); + SynapticsResetHwState(priv->comm.hwState); + + memset(priv->move_hist, 0, sizeof(priv->move_hist)); + priv->hyst_center_x = 0; + priv->hyst_center_y = 0; + memset(&priv->scroll, 0, sizeof(priv->scroll)); + priv->count_packet_finger = 0; + priv->finger_state = FS_UNTOUCHED; + priv->last_motion_millis = 0; + priv->tap_state = TS_START; + priv->tap_button = 0; + priv->tap_button_state = TBS_BUTTON_UP; + priv->moving_state = MS_FALSE; + priv->vert_scroll_edge_on = FALSE; + priv->horiz_scroll_edge_on = FALSE; + priv->vert_scroll_twofinger_on = FALSE; + priv->horiz_scroll_twofinger_on = FALSE; + priv->circ_scroll_on = FALSE; + priv->circ_scroll_vert = FALSE; + priv->mid_emu_state = MBE_OFF; + priv->nextRepeat = 0; + priv->lastButtons = 0; + priv->prev_z = 0; + priv->prevFingers = 0; +} + + static Bool DeviceOff(DeviceIntPtr dev) { @@ -1086,7 +1119,8 @@ DeviceOff(DeviceIntPtr dev) if (pInfo->fd != -1) { TimerCancel(priv->timer); xf86RemoveEnabledDevice(pInfo); - SynapticsResetTouchHwState(priv->hwState); + SynapticsReset(priv); + if (priv->proto_ops->DeviceOffHook && !priv->proto_ops->DeviceOffHook(pInfo)) rc = !Success; diff --git a/src/synproto.c b/src/synproto.c index 4f44f4d..cf54c4d 100644 --- a/src/synproto.c +++ b/src/synproto.c @@ -134,6 +134,29 @@ SynapticsCopyHwState(struct SynapticsHwState *dst, } void +SynapticsResetHwState(struct SynapticsHwState *hw) +{ + hw->millis = 0; + hw->x = 0; + hw->y = 0; + hw->z = 0; + hw->cumulative_dx = 0; + hw->cumulative_dy = 0; + hw->numFingers = 0; + hw->fingerWidth = 0; + + hw->left = 0; + hw->right = 0; + hw->up = 0; + hw->down = 0; + + hw->middle = 0; + memset(hw->multi, 0, sizeof(hw->multi)); + + SynapticsResetTouchHwState(hw); +} + +void SynapticsResetTouchHwState(struct SynapticsHwState *hw) { #ifdef HAVE_MULTITOUCH diff --git a/src/synproto.h b/src/synproto.h index e16aeb0..7f80bcd 100644 --- a/src/synproto.h +++ b/src/synproto.h @@ -119,6 +119,7 @@ extern struct SynapticsHwState *SynapticsHwStateAlloc(SynapticsPrivate *priv); extern void SynapticsHwStateFree(struct SynapticsHwState **hw); extern void SynapticsCopyHwState(struct SynapticsHwState *dst, const struct SynapticsHwState *src); +extern void SynapticsResetHwState(struct SynapticsHwState *hw); extern void SynapticsResetTouchHwState(struct SynapticsHwState *hw); extern Bool SynapticsIsSoftButtonAreasValid(int *values); commit e19fff64f76200291c22d6b822bb4e8b06816745 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Mon Apr 30 09:30:53 2012 +1000 man: fix hyphenation Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/man/synaptics.man b/man/synaptics.man index 6ad201b..ab6e61d 100644 --- a/man/synaptics.man +++ b/man/synaptics.man @@ -52,7 +52,7 @@ middle button events. . Not all models implement this feature.) .IP \(bu 4 -Pressure dependent motion speed. +Pressure-dependent motion speed. .LP Note that depending on the touchpad firmware, some of these features might be available even without using the synaptics driver. Note also commit 3cc828b4764c101f9acd0db9ee3638036ec7a948 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Mon Apr 30 09:28:39 2012 +1000 man: drop mention of shm configuration SHM is for debugging only now, not configuration. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/man/synaptics.man b/man/synaptics.man index 110ad6c..6ad201b 100644 --- a/man/synaptics.man +++ b/man/synaptics.man @@ -53,9 +53,6 @@ middle button events. Not all models implement this feature.) .IP \(bu 4 Pressure dependent motion speed. -.IP \(bu 4 -Run-time configuration using shared memory. This means you can change -parameter settings without restarting the X server. .LP Note that depending on the touchpad firmware, some of these features might be available even without using the synaptics driver. Note also -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1srb1r-0006rm...@vasks.debian.org