xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2016-11-18 Thread Andreas Boll
Rebased ref, commits from common ancestor:
commit 3261e07c923c449f08a96a8439c97479b7ff899c
Author: Peter Hutterer 
Date:   Fri Nov 18 13:00:09 2016 +1000

synaptics 1.9.0

Signed-off-by: Peter Hutterer 

diff --git a/configure.ac b/configure.ac
index 970dd5f..6d814d5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.8.99.2],
+[1.9.0],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit a7d76f4275a88d98b18eed29a1ee94a70e7fa367
Author: Peter Hutterer 
Date:   Sun Oct 9 19:27:47 2016 +1000

synaptics 1.8.99.2

Signed-off-by: Peter Hutterer 

diff --git a/configure.ac b/configure.ac
index b3d0545..970dd5f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.8.99.1],
+[1.8.99.2],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 35b9472a189c88415fed137fb4c62a5081caaea5
Author: Peter Hutterer 
Date:   Thu Sep 15 13:47:09 2016 +1000

Remove unused fraction calculations

hw.x and the motion history are integers so our deltas are always integers.
It's a bit pointless to split them into the fractional and integral part.

obsolete since defc1d008e5674306a or so

Signed-off-by: Peter Hutterer 

diff --git a/src/synaptics.c b/src/synaptics.c
index bdc9605..c7ba9ad 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2198,28 +2198,8 @@ static void
 get_delta(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
   enum EdgeType edge, double *dx, double *dy)
 {
-double integral;
-double tmpf;
-
 *dx = hw->x - HIST(0).x;
 *dy = hw->y - HIST(0).y;
-
-/* report edge speed as synthetic motion. Of course, it would be
- * cooler to report floats than to buffer, but anyway. */
-
-/* FIXME: When these values go NaN, bad things happen. Root cause is 
unknown
- * thus far though. */
-if (isnan(priv->frac_x))
-priv->frac_x = 0;
-if (isnan(priv->frac_y))
-priv->frac_y = 0;
-
-tmpf = *dx + priv->frac_x;
-priv->frac_x = modf(tmpf, );
-*dx = integral;
-tmpf = *dy + priv->frac_y;
-priv->frac_y = modf(tmpf, );
-*dy = integral;
 }
 
 /* Vector length, but not sqrt'ed, we only need it for comparison */
diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index 905b78b..33524e5 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -288,7 +288,6 @@ struct _SynapticsPrivateRec {
 Bool circ_scroll_on;/* Keeps track of currently active scroll 
modes */
 Bool circ_scroll_vert;  /* True: Generate vertical scroll events
False: Generate horizontal events */
-double frac_x, frac_y;  /* absolute -> relative fraction */
 enum MidButtonEmulation mid_emu_state;  /* emulated 3rd button */
 int repeatButtons;  /* buttons for repeat */
 int nextRepeat; /* Time when to trigger next auto repeat event 
*/

commit 486322116d70365c2e2a1d9f45830057fa03153e
Author: Peter Hutterer 
Date:   Wed Aug 17 11:32:12 2016 +1000

eventcomm: don't ever probe if a device is set

If opening the fd fails we still need to fail the device. This is 
particularly
the case when a device disappears before we can open it - the current code
wouldn't exit but instead switch to auto-probe touchpad devices on the 
system.

Signed-off-by: Peter Hutterer 
Reviewed-by: Hans de Goede 

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 9c9a036..f65d532 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -1009,13 +1009,13 @@ EventAutoDevProbe(InputInfoPtr pInfo, const char 
*device)
 
 if (!(pInfo->flags & XI86_SERVER_FD))
 SYSCALL(close(fd));
-
-/* if a device is set and not a touchpad (or already grabbed),
- * we must return FALSE.  Otherwise, we'll add a device that
- * wasn't requested for and repeat
- * f5687a6741a19ef3081e7fd83ac55f6df8bcd5c2. */
-return touchpad_found;
 }
+
+/* if a device is set and not a touchpad (or already grabbed),
+ * we must return FALSE.  Otherwise, we'll add a device that
+ * wasn't requested for and repeat
+ * f5687a6741a19ef3081e7fd83ac55f6df8bcd5c2. */
+return touchpad_found;
 }
 
 i = scandir(DEV_INPUT_EVENT, , EventDevOnly, alphasort);

commit cd9f9799235aefff1ec1a0af9ec6b45969119659
Author: Anton Lindqvist 

xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2016-11-18 Thread Andreas Boll
 configure.ac |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 3261e07c923c449f08a96a8439c97479b7ff899c
Author: Peter Hutterer 
Date:   Fri Nov 18 13:00:09 2016 +1000

synaptics 1.9.0

Signed-off-by: Peter Hutterer 

diff --git a/configure.ac b/configure.ac
index 970dd5f..6d814d5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.8.99.2],
+[1.9.0],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])



xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2016-10-13 Thread Andreas Boll
 conf/50-synaptics.conf |   46 ---
 conf/70-synaptics.conf |   46 +++
 conf/Makefile.am   |2 
 configure.ac   |9 
 docs/tapndrag.dia  |  522 +++--
 include/synaptics-properties.h |2 
 man/synaptics.man  |5 
 src/eventcomm.c|  140 --
 src/eventcomm.h|2 
 src/properties.c   |1 
 src/ps2comm.c  |3 
 src/ps2comm.h  |2 
 src/synaptics.c|  237 ++
 src/synapticsstr.h |9 
 src/synproto.h |2 
 tools/synclient.c  |1 
 tools/syndaemon.c  |   50 ++-
 17 files changed, 596 insertions(+), 483 deletions(-)

New commits:
commit a7d76f4275a88d98b18eed29a1ee94a70e7fa367
Author: Peter Hutterer 
Date:   Sun Oct 9 19:27:47 2016 +1000

synaptics 1.8.99.2

Signed-off-by: Peter Hutterer 

diff --git a/configure.ac b/configure.ac
index b3d0545..970dd5f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.8.99.1],
+[1.8.99.2],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 35b9472a189c88415fed137fb4c62a5081caaea5
Author: Peter Hutterer 
Date:   Thu Sep 15 13:47:09 2016 +1000

Remove unused fraction calculations

hw.x and the motion history are integers so our deltas are always integers.
It's a bit pointless to split them into the fractional and integral part.

obsolete since defc1d008e5674306a or so

Signed-off-by: Peter Hutterer 

diff --git a/src/synaptics.c b/src/synaptics.c
index bdc9605..c7ba9ad 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2198,28 +2198,8 @@ static void
 get_delta(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
   enum EdgeType edge, double *dx, double *dy)
 {
-double integral;
-double tmpf;
-
 *dx = hw->x - HIST(0).x;
 *dy = hw->y - HIST(0).y;
-
-/* report edge speed as synthetic motion. Of course, it would be
- * cooler to report floats than to buffer, but anyway. */
-
-/* FIXME: When these values go NaN, bad things happen. Root cause is 
unknown
- * thus far though. */
-if (isnan(priv->frac_x))
-priv->frac_x = 0;
-if (isnan(priv->frac_y))
-priv->frac_y = 0;
-
-tmpf = *dx + priv->frac_x;
-priv->frac_x = modf(tmpf, );
-*dx = integral;
-tmpf = *dy + priv->frac_y;
-priv->frac_y = modf(tmpf, );
-*dy = integral;
 }
 
 /* Vector length, but not sqrt'ed, we only need it for comparison */
diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index 905b78b..33524e5 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -288,7 +288,6 @@ struct _SynapticsPrivateRec {
 Bool circ_scroll_on;/* Keeps track of currently active scroll 
modes */
 Bool circ_scroll_vert;  /* True: Generate vertical scroll events
False: Generate horizontal events */
-double frac_x, frac_y;  /* absolute -> relative fraction */
 enum MidButtonEmulation mid_emu_state;  /* emulated 3rd button */
 int repeatButtons;  /* buttons for repeat */
 int nextRepeat; /* Time when to trigger next auto repeat event 
*/

commit 486322116d70365c2e2a1d9f45830057fa03153e
Author: Peter Hutterer 
Date:   Wed Aug 17 11:32:12 2016 +1000

eventcomm: don't ever probe if a device is set

If opening the fd fails we still need to fail the device. This is 
particularly
the case when a device disappears before we can open it - the current code
wouldn't exit but instead switch to auto-probe touchpad devices on the 
system.

Signed-off-by: Peter Hutterer 
Reviewed-by: Hans de Goede 

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 9c9a036..f65d532 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -1009,13 +1009,13 @@ EventAutoDevProbe(InputInfoPtr pInfo, const char 
*device)
 
 if (!(pInfo->flags & XI86_SERVER_FD))
 SYSCALL(close(fd));
-
-/* if a device is set and not a touchpad (or already grabbed),
- * we must return FALSE.  Otherwise, we'll add a device that
- * wasn't requested for and repeat
- * f5687a6741a19ef3081e7fd83ac55f6df8bcd5c2. */
-return touchpad_found;
 }
+
+/* if a device is set and not a touchpad (or already grabbed),
+ * we must return FALSE.  Otherwise, we'll add a device that
+ * wasn't requested for and repeat
+ * f5687a6741a19ef3081e7fd83ac55f6df8bcd5c2. */

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2016-01-24 Thread Julien Cristau
 configure.ac|2 +-
 src/eventcomm.c |8 +---
 src/synaptics.c |8 +---
 3 files changed, 11 insertions(+), 7 deletions(-)

New commits:
commit af7d8a15278a968d919bf539628281bf713f747b
Author: Peter Hutterer 
Date:   Thu Oct 29 12:10:09 2015 +1000

synaptics 1.8.3

Signed-off-by: Peter Hutterer 

diff --git a/configure.ac b/configure.ac
index b90e5b2..0b706a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.8.2],
+[1.8.3],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 3e7508ac087028f8f8e116f5279dad1ebcdc58e6
Author: Gabriele Mazzotta 
Date:   Thu Aug 14 20:03:42 2014 +0200

Use cumulative relative touch movements while scrolling

Signed-off-by: Gabriele Mazzotta 
Reviewed-by: Peter Hutterer 
Signed-off-by: Peter Hutterer 
(cherry picked from commit ec0901e5f81d9cad6cc8bbdcb5ea075009c13de5)

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 589a6de..635ec2c 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -697,9 +697,11 @@ EventReadHwState(InputInfoPtr pInfo,
 
 SynapticsResetTouchHwState(hw, FALSE);
 
-/* Reset cumulative values if buttons were not previously pressed,
- * or no finger was previously present. */
-if ((!hw->left && !hw->right && !hw->middle) || hw->z < para->finger_low) {
+/* Reset cumulative values if buttons were not previously pressed and no
+ * two-finger scrolling is ongoing, or no finger was previously present. */
+if (((!hw->left && !hw->right && !hw->middle) &&
+!(priv->vert_scroll_twofinger_on || priv->vert_scroll_twofinger_on)) ||
+hw->z < para->finger_low) {
 hw->cumulative_dx = hw->x;
 hw->cumulative_dy = hw->y;
 sync_cumulative = TRUE;
diff --git a/src/synaptics.c b/src/synaptics.c
index 2d49a12..6f8889b 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -3111,9 +3111,11 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState 
*hw, CARD32 now,
 }
 }
 
-/* If a physical button is pressed on a clickpad, use cumulative relative
- * touch movements for motion */
-if (para->clickpad && (priv->lastButtons & 7) &&
+/* If a physical button is pressed on a clickpad or a two-finger scrolling
+ * is ongoing, use cumulative relative touch movements for motion */
+if (para->clickpad &&
+((priv->lastButtons & 7) ||
+(priv->vert_scroll_twofinger_on || priv->horiz_scroll_twofinger_on)) &&
 priv->last_button_area != TOP_BUTTON_AREA) {
 hw->x = hw->cumulative_dx;
 hw->y = hw->cumulative_dy;



xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2014-09-17 Thread Maximilian Attems
 src/eventcomm.c|   51 +++---
 src/eventcomm.h|2 +
 src/properties.c   |1 
 src/ps2comm.c  |3 ++
 src/ps2comm.h  |2 +
 src/synaptics.c|   64 -
 src/synapticsstr.h |2 +
 src/synproto.h |2 +
 8 files changed, 114 insertions(+), 13 deletions(-)

New commits:
commit a897147be04d74ed452cda166fd4e01f9615ff72
Author: Gabriele Mazzotta gabriele@gmail.com
Date:   Tue Sep 16 17:20:15 2014 +0200

Use ABS_MT events for the palm detection when supported

Use ABS_MT_TOUCH_MAJOR and ABS_MT_PRESSURE instead of ABS_TOOL_WIDTH
and ABS_PRESSURE when supported so that the pressure and the width of
all the fingers is taken into account for the palm detection.

This also fixes the palm detection for those touchpads for which the
kernel only sends ABS_MT_TOUCH_MAJOR and not ABS_TOOL_WIDTH.

Signed-off-by: Gabriele Mazzotta gabriele@gmail.com
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/src/eventcomm.c b/src/eventcomm.c
index e789f0e..4850331 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -606,6 +606,14 @@ EventProcessTouchEvent(InputInfoPtr pInfo, struct 
SynapticsHwState *hw,
 hw-slot_state[slot_index] = SLOTSTATE_CLOSE;
 proto_data-num_touches--;
 }
+
+/* When there are no fingers on the touchpad, set width and
+ * pressure to zero as ABS_MT_TOUCH_MAJOR and ABS_MT_PRESSURE
+ * are not zero when fingers are released. */
+if (proto_data-num_touches == 0) {
+hw-fingerWidth = 0;
+hw-z = 0;
+}
 }
 else {
 ValuatorMask *mask = proto_data-last_mt_vals[slot_index];
@@ -618,6 +626,10 @@ EventProcessTouchEvent(InputInfoPtr pInfo, struct 
SynapticsHwState *hw,
 hw-cumulative_dx += ev-value - last_val;
 else if (ev-code == ABS_MT_POSITION_Y)
 hw-cumulative_dy += ev-value - last_val;
+else if (ev-code == ABS_MT_TOUCH_MAJOR)
+hw-fingerWidth = ev-value;
+else if (ev-code == ABS_MT_PRESSURE)
+hw-z = ev-value;
 }
 
 valuator_mask_set(mask, map, ev-value);
diff --git a/src/synaptics.c b/src/synaptics.c
index 756751d..9807439 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1829,6 +1829,9 @@ SynapticsDetectFinger(SynapticsPrivate * priv, struct 
SynapticsHwState *hw)
 if ((hw-z  para-palm_min_z)  (hw-fingerWidth  para-palm_min_width))
 return FS_BLOCKED;
 
+if (priv-has_touch)
+return finger;
+
 if (hw-x == 0 || priv-finger_state == FS_UNTOUCHED)
 priv-avg_width = 0;
 else

commit 41b2312c006fca1f24e1a366174d3203a63fa04a
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Sep 16 08:52:56 2014 +1000

Limit the movement to 20 mm per event

Touchpads are limited by a fixed sampling rate (usually 80Hz). Some finger
changes may happen too fast for this sampling rate, resulting in two 
distinct
event sequences:
* finger 1 up and finger 2 down in the same EV_SYN frame. Synaptics sees one
  finger down before and after and the changed coordinates
* finger 1 up and finger 2 down _between_ two EV_SYN frames. Synaptics sees 
one
  touchpoint move from f1 position to f2 position.

That move causes a large cursor jump. The former could be solved (with
difficulty) by adding fake EV_SYN handling after releasing touchpoints but
that won't fix the latter case.

So as a solution for now limit the finger movement to 20mm per event.
Tests on a T440 and an x220 showed that this is just above what a reasonable
finger movement would trigger. If a movement is greater than that limit, 
reset
it to 0/0.

On devices without resolution, use 0.25 of the touchpad's diagonal instead.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Hans de Goede hdego...@redhat.com

diff --git a/src/synaptics.c b/src/synaptics.c
index 2e3ad0c..756751d 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -780,6 +780,23 @@ set_default_parameters(InputInfoPtr pInfo)
 pars-resolution_vert = 1;
 }
 
+/* Touchpad sampling rate is too low to detect all movements.
+   A user may lift one finger and put another one down within the same
+   EV_SYN or even between samplings so the driver doesn't notice at all.
+
+   We limit the movement to 20 mm within one event, that is more than
+   recordings showed is needed (17mm on a T440).
+  */
+if (pars-resolution_horiz  1 
+pars-resolution_vert  1)
+pars-maxDeltaMM = 20;
+else {
+/* on devices without resolution set the vector length to 0.25 of
+   the touchpad diagonal */
+

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2014-08-14 Thread Maximilian Attems
 conf/50-synaptics.conf |2 +-
 configure.ac   |9 -
 src/eventcomm.c|   48 +---
 src/synaptics.c|5 +++--
 4 files changed, 41 insertions(+), 23 deletions(-)

New commits:
commit 7d0ff39519e4d3760722b914883bee276035061c
Author: Gabriele Mazzotta gabriele@gmail.com
Date:   Sun Jul 27 12:58:18 2014 +0200

Prevent two-finger taps from being ignored

When two fingers are used, the coordinates of only one of them is taken into
account. This can lead to sudden variations of the absolute coordinates when
two-fingers taps are performed if the finger considered changes.

Take into account coordinates variations to prevent unwanted taps only if
the number of fingers doesn't change.

Reviewed-by: Peter Hutterer peter.hutte...@who-t.net
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/src/synaptics.c b/src/synaptics.c
index b25c902..b49957c 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1960,8 +1960,9 @@ HandleTapProcessing(SynapticsPrivate * priv, struct 
SynapticsHwState *hw,
 (priv-tap_max_fingers =
  ((priv-horiz_scroll_twofinger_on ||
priv-vert_scroll_twofinger_on) ? 2 : 1)) 
-((abs(hw-x - priv-touch_on.x) = para-tap_move) ||
- (abs(hw-y - priv-touch_on.y) = para-tap_move)));
+(priv-prevFingers == hw-numFingers 
+ ((abs(hw-x - priv-touch_on.x) = para-tap_move) ||
+  (abs(hw-y - priv-touch_on.y) = para-tap_move;
 press = (hw-left || hw-right || hw-middle);
 
 if (touch) {

commit a36edf8307ab9b5bffca103dd875623a66012c0b
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 15 08:34:55 2014 +1000

Use libevdev's per-device logging functions instead of the global handler

Per-device logging functions don't interfere with other drivers if they also
use libevdev, so use those instead the global log handler if available. If 
not
available, drop libevdev logging, I don't want to maintain the ifdef mess 
and
the logging doesn't give us _that_ much benefit.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 4b3a726..0a2bfb6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -117,6 +117,13 @@ esac
 if test x$BUILD_EVENTCOMM = xyes; then
 AC_DEFINE(BUILD_EVENTCOMM, 1, [Optional backend eventcomm enabled])
 PKG_CHECK_MODULES(LIBEVDEV, [libevdev = 0.4])
+SAVE_LIBS=$LIBS
+LIBS=$LIBEVDEV_LIBS
+AC_CHECK_LIB(evdev, libevdev_set_device_log_function,
+  [AC_DEFINE(HAVE_LIBEVDEV_DEVICE_LOG_FUNCS, 1,
+   [libevdev supports per-device log functions])],
+   [])
+LIBS=$SAVE_LIBS
 fi
 if test x$BUILD_PSMCOMM = xyes; then
 AC_DEFINE(BUILD_PSMCOMM, 1, [Optional backend psmcomm enabled])
diff --git a/src/eventcomm.c b/src/eventcomm.c
index 2ee072b..1f440b8 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -90,15 +90,18 @@ struct eventcomm_proto_data {
 enum libevdev_read_flag read_flag;
 };
 
+#ifdef HAVE_LIBEVDEV_DEVICE_LOG_FUNCS
 static void
-libevdev_log_func(enum libevdev_log_priority priority,
+libevdev_log_func(const struct libevdev *dev,
+  enum libevdev_log_priority priority,
   void *data,
   const char *file, int line, const char *func,
   const char *format, va_list args)
-_X_ATTRIBUTE_PRINTF(6, 0);
+_X_ATTRIBUTE_PRINTF(7, 0);
 
 static void
-libevdev_log_func(enum libevdev_log_priority priority,
+libevdev_log_func(const struct libevdev *dev,
+  enum libevdev_log_priority priority,
   void *data,
   const char *file, int line, const char *func,
   const char *format, va_list args)
@@ -113,14 +116,7 @@ libevdev_log_func(enum libevdev_log_priority priority,
 
 LogVMessageVerbSigSafe(X_NOTICE, verbosity, format, args);
 }
-
-static void
-set_libevdev_log_handler(void)
-{
-  /* be quiet, gcc *handwave* */
-libevdev_set_log_function((libevdev_log_func_t)libevdev_log_func, NULL);
-libevdev_set_log_priority(LIBEVDEV_LOG_DEBUG);
-}
+#endif
 
 struct eventcomm_proto_data *
 EventProtoDataAlloc(int fd)
@@ -128,7 +124,6 @@ EventProtoDataAlloc(int fd)
 struct eventcomm_proto_data *proto_data;
 int rc;
 
-set_libevdev_log_handler();
 
 proto_data = calloc(1, sizeof(struct eventcomm_proto_data));
 if (!proto_data)
@@ -137,12 +132,31 @@ EventProtoDataAlloc(int fd)
 proto_data-st_to_mt_scale[0] = 1;
 proto_data-st_to_mt_scale[1] = 1;
 
-rc = libevdev_new_from_fd(fd, proto_data-evdev);
+proto_data-evdev = libevdev_new();
+if (!proto_data-evdev) {
+rc = -1;
+goto out;
+}
+
+#ifdef HAVE_LIBEVDEV_DEVICE_LOG_FUNCS
+libevdev_set_device_log_function(proto_data-evdev, 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2014-07-12 Thread Maximilian Attems
Rebased ref, commits from common ancestor:
commit ddd8844a47bfa28974e40fc9aec9b17656415a6c
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon May 19 08:06:46 2014 +1000

eventcomm: Drop requirement for a grab during init

When we required a grab on the device, this was a shortcut so we didn't have
to query the device only to realise we can't read events off it anyway. Now
that we don't actually grab the device by default, this is unnecessary.

Something else may have a temporary grab on the device during init, in which
case we just continue as usual and read events if and when they become
available.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Hans de Goede hdego...@redhat.com

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 37de38a..2ee072b 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -278,49 +278,33 @@ EventDeviceOffHook(InputInfoPtr pInfo)
  * - BTN_TOOL_PEN is _not_ set
  *
  * @param evdev Libevdev handle
- * @param test_grab If true, test whether an EVIOCGRAB is possible on the
- * device. A failure to grab the event device returns in a failure.
  *
  * @return TRUE if the device is a touchpad or FALSE otherwise.
  */
 static Bool
-event_query_is_touchpad(struct libevdev *evdev, BOOL test_grab)
+event_query_is_touchpad(struct libevdev *evdev)
 {
-int ret = FALSE, rc;
-
-if (test_grab) {
-rc = libevdev_grab(evdev, LIBEVDEV_GRAB);
-if (rc  0)
-return FALSE;
-}
-
 /* Check for ABS_X, ABS_Y, ABS_PRESSURE and BTN_TOOL_FINGER */
 if (!libevdev_has_event_type(evdev, EV_SYN) ||
 !libevdev_has_event_type(evdev, EV_ABS) ||
 !libevdev_has_event_type(evdev, EV_KEY))
-goto unwind;
+return FALSE;
 
 if (!libevdev_has_event_code(evdev, EV_ABS, ABS_X) ||
 !libevdev_has_event_code(evdev, EV_ABS, ABS_Y))
-goto unwind;
+return FALSE;
 
 /* we expect touchpad either report raw pressure or touches */
 if (!libevdev_has_event_code(evdev, EV_KEY, BTN_TOUCH) 
 !libevdev_has_event_code(evdev, EV_ABS, ABS_PRESSURE))
-goto unwind;
+return FALSE;
 
 /* all Synaptics-like touchpad report BTN_TOOL_FINGER */
 if (!libevdev_has_event_code(evdev, EV_KEY, BTN_TOOL_FINGER) ||
 libevdev_has_event_code(evdev, EV_ABS, BTN_TOOL_PEN)) /* Don't match 
wacom tablets */
-goto unwind;
-
-ret = TRUE;
-
- unwind:
-if (test_grab)
-libevdev_grab(evdev, LIBEVDEV_UNGRAB);
+return FALSE;
 
-return (ret == TRUE);
+return TRUE;
 }
 
 #define PRODUCT_ANY 0x
@@ -512,8 +496,7 @@ EventQueryHardware(InputInfoPtr pInfo)
 SynapticsPrivate *priv = (SynapticsPrivate *) pInfo-private;
 struct eventcomm_proto_data *proto_data = priv-proto_data;
 
-if (!event_query_is_touchpad(proto_data-evdev,
- (proto_data) ? proto_data-need_grab : TRUE))
+if (!event_query_is_touchpad(proto_data-evdev))
 return FALSE;
 
 xf86IDrvMsg(pInfo, X_PROBED, touchpad found\n);
@@ -912,7 +895,7 @@ EventReadDevDimensions(InputInfoPtr pInfo)
 proto_data-axis_map[i] = -1;
 proto_data-cur_slot = -1;
 
-if (event_query_is_touchpad(proto_data-evdev, proto_data-need_grab)) {
+if (event_query_is_touchpad(proto_data-evdev)) {
 event_query_touch(pInfo);
 event_query_axis_ranges(pInfo);
 }
@@ -946,7 +929,7 @@ EventAutoDevProbe(InputInfoPtr pInfo, const char *device)
 
 rc = libevdev_new_from_fd(fd, evdev);
 if (rc = 0) {
-touchpad_found = event_query_is_touchpad(evdev, TRUE);
+touchpad_found = event_query_is_touchpad(evdev);
 libevdev_free(evdev);
 }
 
@@ -988,7 +971,7 @@ EventAutoDevProbe(InputInfoPtr pInfo, const char *device)
 
 rc = libevdev_new_from_fd(fd, evdev);
 if (rc = 0) {
-touchpad_found = event_query_is_touchpad(evdev, TRUE);
+touchpad_found = event_query_is_touchpad(evdev);
 libevdev_free(evdev);
 if (touchpad_found) {
 xf86IDrvMsg(pInfo, X_PROBED, auto-dev sets device to 
%s\n,

commit 3a4cc96590ca0e0ff526a5e5406f29a402bddd1a
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue May 13 11:20:25 2014 +1000

synaptics 1.8.0

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 712d48d..91b3eda 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.7.99.2],
+[1.8.0],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit d4d7229c41a20cf6757882a24f45e28d936a27c5
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Apr 30 13:08:53 2014 +1000

conf: 

xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2014-03-19 Thread Timo Aaltonen
 conf/11-x11-synaptics.fdi  |   12 ++
 conf/50-synaptics.conf |   15 +++
 configure.ac   |5 -
 include/synaptics-properties.h |3 
 man/synaptics.man  |   11 +-
 man/syndaemon.man  |8 -
 src/Makefile.am|1 
 src/eventcomm.c|  192 +
 src/properties.c   |   50 --
 src/synaptics.c|  132 
 src/synapticsstr.h |   21 +++-
 src/synproto.h |4 
 tools/synclient.c  |2 
 tools/syndaemon.c  |   33 +--
 14 files changed, 249 insertions(+), 240 deletions(-)

New commits:
commit fd709900445e3cb9f31ce7e780bfa98ecb6dab9b
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Mar 18 07:28:44 2014 +1000

synaptics 1.7.99.1

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 865d4b4..be6b7ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.7.99],
+[1.7.99.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit dc5474964d4ec73b5c324961026e1037bb344946
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Mar 17 14:55:37 2014 +1000

If the touchpad is in TOUCHPAD_OFF mode, allow physical clicks

Enabling clicks in off mode also allows for the new Lenovo *40 series to use
the top software buttons while the touchpad is disabled. This benefits those
that usually disable touchpads altogether but still need the buttons for the
trackstick.

This changes existing behaviour, but TouchpadOff was always intended to stop
erroneous events while typing. Physical button presses are hard to trigger
accidentally. On the touchpads that TouchpadOff concept was originally
designed for the buttons are nowhere near the keyboard and are physically
separated from the touchpad anyway. On Clickpads, triggering a physical
click requires more force than accidentally touching the surface.

https://bugs.freedesktop.org/show_bug.cgi?id=76156

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Hans de Goede hdego...@redhat.com

diff --git a/man/synaptics.man b/man/synaptics.man
index 97f0114..081ce12 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -261,9 +261,14 @@ Valid values are:
 .TS
 l l.
 0  Touchpad is enabled
-1  Touchpad is switched off
+1  Touchpad is switched off (physical clicks still work)
 2  Only tapping and scrolling is switched off
 .TE
+When the touchpad is switched off, button events caused by a physical
+button press are still interpreted. On a ClickPad, this includes
+software-emulated middle and right buttons as defined by
+the SoftButtonAreas setting.
+.TP
 Property: Synaptics Off
 .TP
 .BI Option \*qLockedDrags\*q \*q boolean \*q
diff --git a/src/synaptics.c b/src/synaptics.c
index aeb1c57..07fd450 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1934,7 +1934,8 @@ HandleTapProcessing(SynapticsPrivate * priv, struct 
SynapticsHwState *hw,
 enum EdgeType edge;
 int delay = 10;
 
-if (priv-finger_state == FS_BLOCKED)
+if (para-touchpad_off == TOUCHPAD_OFF ||
+priv-finger_state == FS_BLOCKED)
 return delay;
 
 touch = finger = FS_TOUCHED  priv-finger_state == FS_UNTOUCHED;
@@ -2349,7 +2350,9 @@ HandleScrolling(SynapticsPrivate * priv, struct 
SynapticsHwState *hw,
 SynapticsParameters *para = priv-synpara;
 int delay = 10;
 
-if ((priv-synpara.touchpad_off == TOUCHPAD_TAP_OFF) || 
(priv-finger_state == FS_BLOCKED)) {
+if (priv-synpara.touchpad_off == TOUCHPAD_TAP_OFF ||
+priv-synpara.touchpad_off == TOUCHPAD_OFF ||
+priv-finger_state == FS_BLOCKED) {
 stop_coasting(priv);
 priv-circ_scroll_on = FALSE;
 priv-vert_scroll_edge_on = FALSE;
@@ -3080,12 +3083,6 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState 
*hw, CARD32 now,
 Bool using_cumulative_coords = FALSE;
 Bool ignore_motion;
 
-/* If touchpad is switched off, we skip the whole thing and return delay */
-if (para-touchpad_off == TOUCHPAD_OFF) {
-UpdateTouchState(pInfo, hw);
-return delay;
-}
-
 /* We need both and x/y, the driver can't handle just one of the two
  * yet. But since it's possible to hit a phys button on non-clickpads
  * without ever getting motion data first, we must continue with 0/0 for
@@ -3124,8 +3121,8 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState 
*hw, CARD32 now,
  current_button_area(para, hw-x, hw-y) == NO_BUTTON_AREA)
 priv-last_button_area = NO_BUTTON_AREA;
 
-ignore_motion =
-!using_cumulative_coords  

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2014-03-12 Thread Michele Cane
 configure.ac   |2 
 include/synaptics-properties.h |3 
 man/synaptics.man  |   60 ++---
 src/properties.c   |   65 ++
 src/synaptics.c|  181 -
 src/synapticsstr.h |   15 +++
 tools/synclient.c  |8 +
 7 files changed, 317 insertions(+), 17 deletions(-)

New commits:
commit 8a5533aaa7e6e57bca7674de4cd25b3a18217d44
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Mar 12 09:42:38 2014 +1000

synaptics 1.7.4

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index ea5c002..c41e6da 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.7.3],
+[1.7.4],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit c189854a688465c820d5ef5767e00b69394a1601
Author: Keith Packard kei...@keithp.com
Date:   Sat Feb 22 01:44:37 2014 -0800

Close device if DeviceOnHook fails

Signed-off-by: Keith Packard kei...@keithp.com
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 22fe8bdc6668e78853768c62f4d1331114c7eca0)

diff --git a/src/synaptics.c b/src/synaptics.c
index 1c22873..0986e20 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -959,8 +959,10 @@ DeviceOn(DeviceIntPtr dev)
 }
 
 if (priv-proto_ops-DeviceOnHook 
-!priv-proto_ops-DeviceOnHook(pInfo, priv-synpara))
+!priv-proto_ops-DeviceOnHook(pInfo, priv-synpara)) {
+xf86CloseSerial(pInfo-fd);
 return !Success;
+}
 
 priv-comm.buffer = XisbNew(pInfo-fd, INPUT_BUFFER_SIZE);
 if (!priv-comm.buffer) {

commit 503082bf17dfc4cb3d4b794ea514ac6f413c07f2
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Feb 18 10:14:37 2014 +1000

man: setting scroll deltas to 0 doesn't work (#75074)

6d47d33 disallows a zero value for horizontal/vertical scroll deltas but the
man page wasn't updated. We've added separate toggles to enable/disable
scrolling a few years ago, setting the distance to 0 is not recommended.

X.Org Bug 75074 http://bugs.freedesktop.org/show_bug.cgi?id=75074

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 2ea76fad6545a712713de1a09965158805e83c55)

diff --git a/man/synaptics.man b/man/synaptics.man
index eb04eb2..7da7527 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -585,9 +585,6 @@ effect on scrolling speed.
 Scrolling speed is determined solely from the VertScrollDelta and
 HorizScrollDelta parameters.
 .
-To disable vertical or horizontal scrolling, set VertScrollDelta or
-HorizScrollDelta to zero.
-.
 To invert the direction of vertical or horizontal scrolling, set
 VertScrollDelta or HorizScrollDelta to a negative value.
 .

commit 0b70c76eab57822526585bbd11a1408bd115f26b
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Feb 13 14:55:12 2014 +1000

Revert Drop circular pad support

This reverts commit 3b02e7fd81da4b100fb9ac32378f6d50f54cf0e2.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

Conflicts:
man/synaptics.man
src/synaptics.c

Acked-by: Daniel Stone dan...@fooishbar.org
(cherry picked from commit 4f543ce1d6ae9ca11086a3009d149505590584a8)

diff --git a/include/synaptics-properties.h b/include/synaptics-properties.h
index b717880..19bd2b2 100644
--- a/include/synaptics-properties.h
+++ b/include/synaptics-properties.h
@@ -116,6 +116,9 @@
 #define SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER Synaptics Circular 
Scrolling Trigger
 
 /* 8 bit (BOOL) */
+#define SYNAPTICS_PROP_CIRCULAR_PAD Synaptics Circular Pad
+
+/* 8 bit (BOOL) */
 #define SYNAPTICS_PROP_PALM_DETECT Synaptics Palm Detection
 
 /* 32 bit, 2 values, width, z */
diff --git a/man/synaptics.man b/man/synaptics.man
index 7652404..eb04eb2 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -351,6 +351,13 @@ l l.
 .TE
 Property: Synaptics Circular Scrolling Trigger
 .TP
+.BI Option \*qCircularPad\*q \*q boolean \*q
+.
+Instead of being a rectangle, the edge is the ellipse enclosed by the
+Left/Right/Top/BottomEdge parameters.
+.
+For circular touchpads. Property: Synaptics Circular Pad
+.TP
 .BI Option \*qPalmDetect\*q \*q boolean \*q
 If palm detection should be enabled.
 .
@@ -933,7 +940,6 @@ The following options are no longer part of the driver 
configuration:
 .TP
 .BI Option \*qEdgeMotionUseAlways\*q \*q boolean \*q
 .TP
-.BI Option \*qCircularPad\*q \*q boolean \*q
 
 .SH AUTHORS
 .LP
diff --git a/src/properties.c b/src/properties.c
index 0041544..886d8c2 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -295,6 +295,9 @@ InitDeviceProperties(InputInfoPtr pInfo)
 prop_circscroll_trigger =
 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2014-01-13 Thread Michele Cane
 configure.ac   |2 +-
 src/synapticsstr.h |6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

New commits:
commit 90d93891be0dcc55d87c349ab438144ead818402
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Jan 13 15:14:06 2014 +1000

synaptics 1.7.3

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index a9b8b2b..ea5c002 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.7.2],
+[1.7.3],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit b227ca373de79fe6852ac09e71465c048790cd5b
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Jan 3 11:23:22 2014 +1000

Fix ABI detection for in-driver scaling

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 49fe70e99d1b0932ab915824c78f952a0fdb3ee7)

diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index a9901a2..3d6f756 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -28,13 +28,13 @@
 #define LogMessageVerbSigSafe xf86MsgVerb
 #endif
 
-#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) = 19
-#if GET_ABI_MINOR(ABI_XINPUT_VERSION) = 2
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION)  19
+#define NO_DRIVER_SCALING 1
+#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 19  
GET_ABI_MINOR(ABI_XINPUT_VERSION) = 2
 /* as of 19.2, the server takes device resolution into account when scaling
relative events from abs device, so we must not scale in synaptics. */
 #define NO_DRIVER_SCALING 1
 #endif
-#endif
 
 #ifdef DBG
 #undef DBG


-- 
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/e1w2dy0-0006hs...@moszumanska.debian.org



xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2013-12-10 Thread Michele Cane
 configure.ac   |2 +-
 src/eventcomm.c|1 +
 src/properties.c   |   13 +
 src/synaptics.c|9 +
 src/synapticsstr.h |   10 ++
 5 files changed, 34 insertions(+), 1 deletion(-)

New commits:
commit 88d926d12a1f5c06ee2825de5bc4bec29c78
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Dec 9 11:28:23 2013 +1000

synaptics 1.7.2

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 5dfbc4e..a9b8b2b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.7.1],
+[1.7.2],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 61243ada3e1e10f6d32a899a6cc595efa244eb25
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Dec 4 07:58:26 2013 +1000

eventcomm: ungrab the device on DeviceOff

For symmetry, the kernel should ungrab when we close the fd.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

[modified for the 1.7 branch which isn't using libevdev yet]

(cherry picked from commit 5d391e352f4e502ada6444a7ce860683e3480fbf)

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 258a538..a9a344b 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -206,6 +206,7 @@ static Bool
 EventDeviceOffHook(InputInfoPtr pInfo)
 {
 UninitializeTouch(pInfo);
+SYSCALL(ioctl(pInfo-fd, EVIOCGRAB, (pointer) 0));
 
 return Success;
 }

commit 09ac39309fbee01aa047dab1b0f577dc2571cdd1
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Dec 5 09:31:11 2013 +1000

Add missing property handler for the pressure motion factor

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 29318c1d94510cfb6d5d712e912af111f99edb42)

diff --git a/src/properties.c b/src/properties.c
index dd88fc7..797f1da 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -650,6 +650,19 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 para-press_motion_min_z = press[0];
 para-press_motion_max_z = press[1];
 }
+else if (property == prop_pressuremotion_factor) {
+float *press;
+
+if (prop-size != 2 || prop-format != 32 || prop-type != float_type)
+return BadMatch;
+
+press = (float *) prop-data;
+if (press[0]  press[1])
+return BadValue;
+
+para-press_motion_min_factor = press[0];
+para-press_motion_max_factor = press[1];
+}
 else if (property == prop_grab) {
 if (prop-size != 1 || prop-format != 8 || prop-type != XA_INTEGER)
 return BadMatch;

commit f4ddbde165843924195b08551d7d6d6200c44b23
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Jul 19 11:08:43 2013 +1000

Disable driver scaling for input ABI 19.2

For absolute devices in relative mode, i.e. touchpads, the server now takes
device resolution into account. Doing so means that the driver mustn't
scale, so we deactivate those bits in the driver.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 0fb59b3487d57523a03f078a2061e2ea0cacbc7c)

diff --git a/src/synaptics.c b/src/synaptics.c
index eb38271..e391a98 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -133,9 +133,11 @@ static int DeviceOff(DeviceIntPtr);
 static int DeviceClose(DeviceIntPtr);
 static Bool QueryHardware(InputInfoPtr);
 static void ReadDevDimensions(InputInfoPtr);
+#ifndef NO_DRIVER_SCALING
 static void ScaleCoordinates(SynapticsPrivate * priv,
  struct SynapticsHwState *hw);
 static void CalculateScalingCoeffs(SynapticsPrivate * priv);
+#endif
 static void SanitizeDimensions(InputInfoPtr pInfo);
 
 void InitDeviceProperties(InputInfoPtr pInfo);
@@ -829,7 +831,10 @@ SynapticsPreInit(InputDriverPtr drv, InputInfoPtr pInfo, 
int flags)
 
 set_default_parameters(pInfo);
 
+#ifndef NO_DRIVER_SCALING
 CalculateScalingCoeffs(priv);
+#endif
+
 
 priv-comm.buffer = XisbNew(pInfo-fd, INPUT_BUFFER_SIZE);
 
@@ -2863,7 +2868,9 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState 
*hw, CARD32 now,
  * calculations that require unadjusted coordinates, for example edge
  * detection.
  */
+#ifndef NO_DRIVER_SCALING
 ScaleCoordinates(priv, hw);
+#endif
 }
 
 dx = dy = 0;
@@ -2987,6 +2994,7 @@ QueryHardware(InputInfoPtr pInfo)
 return TRUE;
 }
 
+#ifndef NO_DRIVER_SCALING
 static void
 ScaleCoordinates(SynapticsPrivate * priv, struct SynapticsHwState *hw)
 {
@@ -3016,3 +3024,4 @@ CalculateScalingCoeffs(SynapticsPrivate * priv)
 priv-vert_coeff = 1;
 }
 }
+#endif
diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index 428befa..a9901a2 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -28,6 +28,14 @@
 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2013-09-05 Thread Julien Cristau
Rebased ref, commits from common ancestor:
commit 96cf04dce19e7c90bc05b8b3b192b5bfb97381d2
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon May 13 10:03:48 2013 +1000

synaptics 1.7.1

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index b8a75cd..5dfbc4e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.7.0],
+[1.7.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 3bd40423b26ab692174ddcdd12489467ba876926
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 9 11:09:51 2013 +1000

Plug memory leak for priv-touch_axes

Allocated in event_query_touch, was never freed.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Dave Airlie airl...@redhat.com

diff --git a/src/synaptics.c b/src/synaptics.c
index d4b21a9..eb38271 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1035,6 +1035,8 @@ DeviceClose(DeviceIntPtr dev)
 RetValue = DeviceOff(dev);
 TimerFree(priv-timer);
 priv-timer = NULL;
+free(priv-touch_axes);
+priv-touch_axes = NULL;
 SynapticsHwStateFree(priv-hwState);
 SynapticsHwStateFree(priv-old_hw_state);
 SynapticsHwStateFree(priv-local_hw_state);

commit eb50f8023e9ce11c3f0249ef9ddf398a1d983c84
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 9 11:06:12 2013 +1000

Plug memory leak for option_string

xf86SetStrOption() returns a strdup'd string that must be freed after use.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Dave Airlie airl...@redhat.com

diff --git a/src/synaptics.c b/src/synaptics.c
index 2de05d4..d4b21a9 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -513,12 +513,15 @@ set_softbutton_areas_option(InputInfoPtr pInfo)
 memcpy(pars-softbutton_areas[0], values, 4 * sizeof(int));
 memcpy(pars-softbutton_areas[1], values + 4, 4 * sizeof(int));
 
+free(option_string);
+
 return;
 
  fail:
 xf86IDrvMsg(pInfo, X_ERROR,
 invalid SoftButtonAreas value '%s', keeping defaults\n,
 option_string);
+free(option_string);
 }
 
 static void

commit 7cc0ebf0858ebb505d933839f25bb269a8cdb764
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Apr 26 10:09:10 2013 +1000

Fix stack smash in clickpad_guess_clickfingers()

Apple Magic Trackpad can report 16 slots. In clickpad_guess_clickfingers()
the array allocated on the stack contains only 10 slots.
As (.num_mt_mask == .num_slots), the function writes out of the bounds
of close_point.

Use a size 32 bitmask instead and warn if we ever get past 32 touchpoints.

This fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=952221

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reported-by: Benjamin Tissoires benjamin.tissoi...@redhat.com

diff --git a/src/synaptics.c b/src/synaptics.c
index f0a8269..2de05d4 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2453,10 +2453,11 @@ clickpad_guess_clickfingers(SynapticsPrivate * priv,
 struct SynapticsHwState *hw)
 {
 int nfingers = 0;
-char close_point[SYNAPTICS_MAX_TOUCHES] = { 0 };/* 1 for each point 
close
-   to another one */
+uint32_t close_point = 0; /* 1 bit for each point close to another one */
 int i, j;
 
+BUG_RETURN_VAL(hw-num_mt_mask  sizeof(close_point) * 8, 0);
+
 for (i = 0; i  hw-num_mt_mask - 1; i++) {
 ValuatorMask *f1;
 
@@ -2488,14 +2489,16 @@ clickpad_guess_clickfingers(SynapticsPrivate * priv,
  * size. Good luck. */
 if (abs(x1 - x2)  (priv-maxx - priv-minx) * .3 
 abs(y1 - y2)  (priv-maxy - priv-miny) * .3) {
-close_point[j] = 1;
-close_point[i] = 1;
+close_point |= (1  j);
+close_point |= (1  i);
 }
 }
 }
 
-for (i = 0; i  SYNAPTICS_MAX_TOUCHES; i++)
-nfingers += close_point[i];
+while (close_point  0) {
+nfingers += close_point  0x1;
+close_point = 1;
+}
 
 return nfingers;
 }

commit ac47b4ea5b4f7b920b84a1e70adce3475e3be346
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Apr 3 10:50:50 2013 +1000

Allow soft button areas to overlap on the edge

For percent-based configuration in the form of
middle button 33%-66%, right button 66%-0 we'd get an error because of the
one device unit overlap. This was neither documented nor useful, because
leaving a 1% gap leaves an actual gap between the buttons. Allow for an
overlap of one device unit on the edge of the buttons.

What's picked in that case depends on the 

xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2013-07-25 Thread Maarten Lankhorst
Rebased ref, commits from common ancestor:
commit 96cf04dce19e7c90bc05b8b3b192b5bfb97381d2
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon May 13 10:03:48 2013 +1000

synaptics 1.7.1

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index b8a75cd..5dfbc4e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.7.0],
+[1.7.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 3bd40423b26ab692174ddcdd12489467ba876926
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 9 11:09:51 2013 +1000

Plug memory leak for priv-touch_axes

Allocated in event_query_touch, was never freed.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Dave Airlie airl...@redhat.com

diff --git a/src/synaptics.c b/src/synaptics.c
index d4b21a9..eb38271 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1035,6 +1035,8 @@ DeviceClose(DeviceIntPtr dev)
 RetValue = DeviceOff(dev);
 TimerFree(priv-timer);
 priv-timer = NULL;
+free(priv-touch_axes);
+priv-touch_axes = NULL;
 SynapticsHwStateFree(priv-hwState);
 SynapticsHwStateFree(priv-old_hw_state);
 SynapticsHwStateFree(priv-local_hw_state);

commit eb50f8023e9ce11c3f0249ef9ddf398a1d983c84
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 9 11:06:12 2013 +1000

Plug memory leak for option_string

xf86SetStrOption() returns a strdup'd string that must be freed after use.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Dave Airlie airl...@redhat.com

diff --git a/src/synaptics.c b/src/synaptics.c
index 2de05d4..d4b21a9 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -513,12 +513,15 @@ set_softbutton_areas_option(InputInfoPtr pInfo)
 memcpy(pars-softbutton_areas[0], values, 4 * sizeof(int));
 memcpy(pars-softbutton_areas[1], values + 4, 4 * sizeof(int));
 
+free(option_string);
+
 return;
 
  fail:
 xf86IDrvMsg(pInfo, X_ERROR,
 invalid SoftButtonAreas value '%s', keeping defaults\n,
 option_string);
+free(option_string);
 }
 
 static void

commit 7cc0ebf0858ebb505d933839f25bb269a8cdb764
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Apr 26 10:09:10 2013 +1000

Fix stack smash in clickpad_guess_clickfingers()

Apple Magic Trackpad can report 16 slots. In clickpad_guess_clickfingers()
the array allocated on the stack contains only 10 slots.
As (.num_mt_mask == .num_slots), the function writes out of the bounds
of close_point.

Use a size 32 bitmask instead and warn if we ever get past 32 touchpoints.

This fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=952221

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reported-by: Benjamin Tissoires benjamin.tissoi...@redhat.com

diff --git a/src/synaptics.c b/src/synaptics.c
index f0a8269..2de05d4 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2453,10 +2453,11 @@ clickpad_guess_clickfingers(SynapticsPrivate * priv,
 struct SynapticsHwState *hw)
 {
 int nfingers = 0;
-char close_point[SYNAPTICS_MAX_TOUCHES] = { 0 };/* 1 for each point 
close
-   to another one */
+uint32_t close_point = 0; /* 1 bit for each point close to another one */
 int i, j;
 
+BUG_RETURN_VAL(hw-num_mt_mask  sizeof(close_point) * 8, 0);
+
 for (i = 0; i  hw-num_mt_mask - 1; i++) {
 ValuatorMask *f1;
 
@@ -2488,14 +2489,16 @@ clickpad_guess_clickfingers(SynapticsPrivate * priv,
  * size. Good luck. */
 if (abs(x1 - x2)  (priv-maxx - priv-minx) * .3 
 abs(y1 - y2)  (priv-maxy - priv-miny) * .3) {
-close_point[j] = 1;
-close_point[i] = 1;
+close_point |= (1  j);
+close_point |= (1  i);
 }
 }
 }
 
-for (i = 0; i  SYNAPTICS_MAX_TOUCHES; i++)
-nfingers += close_point[i];
+while (close_point  0) {
+nfingers += close_point  0x1;
+close_point = 1;
+}
 
 return nfingers;
 }

commit ac47b4ea5b4f7b920b84a1e70adce3475e3be346
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Apr 3 10:50:50 2013 +1000

Allow soft button areas to overlap on the edge

For percent-based configuration in the form of
middle button 33%-66%, right button 66%-0 we'd get an error because of the
one device unit overlap. This was neither documented nor useful, because
leaving a 1% gap leaves an actual gap between the buttons. Allow for an
overlap of one device unit on the edge of the buttons.

What's picked in that case depends on the 

xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2013-03-07 Thread Timo Aaltonen
 conf/50-synaptics.conf |3 +++
 configure.ac   |2 +-
 src/eventcomm.c|   12 ++--
 src/properties.c   |   10 ++
 src/ps2comm.c  |8 
 src/synaptics.c|7 +--
 src/synapticsstr.h |4 
 test/fake-symbols.c|   12 ++--
 test/fake-symbols.h|2 --
 9 files changed, 39 insertions(+), 21 deletions(-)

New commits:
commit 947d96faabc7267177da32fbfc9f8c3a81b576af
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Feb 1 15:53:14 2013 +1000

synaptics 1.6.3

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 2490ddb..a2e68a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.6.2.901],
+[1.6.3],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 3b02d3061e58097ab5644b85250ed48e5ef0b02a
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Jan 4 16:08:47 2013 +1000

conf: add example for AreaBottomEdge on clickpad buttons

Those that use clickpad buttons as buttons can see cursor jumps as the press
on the touchpad - largely caused by the finger changing shape as the
pressure changes and thus moving the hotspot.

Simple fix is to define the clickpad soft button areas as dead areas, but
this cannot be set as general option as it would break for those that use
tapping.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 2159b5d26207c83efea6efca7fa5765df95a4219)

diff --git a/conf/50-synaptics.conf b/conf/50-synaptics.conf
index 9e86a7a..dd16ca2 100644
--- a/conf/50-synaptics.conf
+++ b/conf/50-synaptics.conf
@@ -32,6 +32,9 @@ Section InputClass
 Identifier Default clickpad buttons
 MatchDriver synaptics
 Option SoftButtonAreas 50% 0 82% 0 0 0 0 0
+#   To disable the bottom edge area so the buttons only work as buttons,
+#   not for movement, set the AreaBottomEdge
+#   Option AreaBottomEdge 82%
 EndSection
 
 # This option disables software buttons on Apple touchpads.

commit f23991d3c2bbf25d467ddd6d850acd5bca3cd4b2
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Jan 17 19:22:03 2013 +1000

synaptics 1.6.2.901

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 894d4f5..2490ddb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.6.2],
+[1.6.2.901],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit cb883766ec07b3380541fe9248aa46f07c39c338
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Aug 23 16:22:31 2012 +1000

Recognise the soft button area property before clickpad is enabled

Otherwise the driver has no internal reference to the soft button area
property and will ignore any setting.

Also, if a client sets this property, we claim it as our own and disallow
deletion.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 86460318ba5606ef41712b52e50bf7b2ba083226)

diff --git a/src/properties.c b/src/properties.c
index 3b3f1c5..83f370d 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -839,6 +839,16 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 }
 else if (property == prop_product_id || property == prop_device_node)
 return BadValue;/* read-only */
+else { /* unknown property */
+if (strcmp(SYNAPTICS_PROP_SOFTBUTTON_AREAS, NameForAtom(property)) == 
0)
+{
+prop_softbutton_areas = property;
+if (SetProperty(dev, property, prop, checkonly) != Success)
+prop_softbutton_areas = 0;
+else if (!checkonly)
+XISetDevicePropertyDeletable(dev, property, FALSE);
+}
+}
 
 return Success;
 }

commit 7d1df986e1330a02cfb74a0babae1ae78768aa52
Author: Daniel Stone dan...@fooishbar.org
Date:   Sat Dec 29 03:24:52 2012 +

Free mtdev device as well as closing it

mtdev_close_delete() is to mtdev_new_open() as mtdev_close() is to
mtdev_open().  So, since we're using mtdev_new_open(), we need to use
mtdev_close_delete() instead of just mtdev_close() to actually free
everything.

Fixes an eventual failure to open the touchpad device after a lot of
suspend/resume cycles.

[whot: amended to mtdev_close_delete in evdev_query_touch]

Signed-off-by: Daniel Stone dan...@fooishbar.org
Reviewed-by: Dan Nicholson dbn.li...@gmail.com
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2012-10-01 Thread Julien Cristau
 src/synaptics.c |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit eae444eb1a85d2401501d29f9a6c654c046f806b
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Aug 30 16:38:38 2012 +1000

Reset num_active_touches on DeviceOff (#52496)

When disabling the device, reset num_active_touches to zero. Otherwise,
num_active_touches stays at the value it was on DeviceOff(). Future touches
add to that value until the index may go past priv-open_slots[].
That causes spurious memory corruption on touch ends.

And as of 55fc42e7c9b4948cadd4f98ef7b6a3b12e268e3e we ignore pre-existing
touches anyway.

Test-case:
- place num_touches fingers on the touchpad
- xinput disable device
- lift fingers
- xinput enable device
- place finger on device, num_active_touches is now (num_touches + 1)

X.Org Bug 52496 http://bugs.freedesktop.org/show_bug.cgi?id=52496

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Chase Douglas chase.doug...@canonical.com
(cherry picked from commit a245d42f53096b1ae81e6702729f97ca508e5b5b)

Conflicts:
src/synaptics.c

diff --git a/src/synaptics.c b/src/synaptics.c
index cd9f936..a28e984 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1154,6 +1154,7 @@ SynapticsReset(SynapticsPrivate * priv)
 priv-prev_z = 0;
 priv-prevFingers = 0;
 #ifdef HAVE_MULTITOUCH
+priv-num_active_touches = 0;
 memset(priv-open_slots, 0, priv-num_slots * sizeof(int));
 #endif
 }
@@ -3118,6 +3119,7 @@ UpdateTouchState(InputInfoPtr pInfo, struct 
SynapticsHwState *hw)
 if (hw-slot_state[i] == SLOTSTATE_OPEN) {
 priv-open_slots[priv-num_active_touches] = i;
 priv-num_active_touches++;
+BUG_WARN(priv-num_active_touches  priv-num_slots);
 }
 else if (hw-slot_state[i] == SLOTSTATE_CLOSE) {
 Bool found = FALSE;


-- 
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/e1timtb-0002r3...@vasks.debian.org



xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2012-07-16 Thread Maarten Lankhorst
 conf/50-synaptics.conf |   18 
 configure.ac   |   18 
 include/synaptics-properties.h |8 
 include/synaptics.h|   39 
 man/synaptics.man  |   58 
 src/Makefile.am|3 
 src/alpscomm.c |  101 -
 src/eventcomm.c|  888 ---
 src/eventcomm.h|9 
 src/properties.c   |  618 
 src/ps2comm.c  |  538 +++
 src/ps2comm.h  |   21 
 src/psmcomm.c  |   71 
 src/synaptics.c| 3114 +
 src/synapticsstr.h |  356 ++--
 src/synproto.c |  183 ++
 src/synproto.h |   78 -
 test/Makefile.am   |3 
 test/eventcomm-test.c  |  184 +-
 test/fake-symbols.c|  199 +-
 test/fake-symbols.h|  170 +-
 tools/synclient.c  |  593 ---
 tools/syndaemon.c  |  604 ---
 23 files changed, 4794 insertions(+), 3080 deletions(-)

New commits:
commit d5ff9d8b0b186cf39695df84a10984eac559b746
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Jun 12 13:46:34 2012 +1000

synaptics 1.6.2

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 3e7ec2a..894d4f5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.6.1.901],
+[1.6.2],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit c1aae820601a911432c64938f03eab62bafaab2f
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri May 18 09:38:50 2012 +1000

synaptics 1.6.1.901

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 565daf2..3e7ec2a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.6.1],
+[1.6.1.901],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 17 12:10:04 2012 +1000

Don't allow for scroll distances of 0 (#49965)

It'll either hang the server or blow up with divisions by 0, whichever one
comes first.

X.Org Bug 49965 http://bugs.freedesktop.org/show_bug.cgi?id=49965

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Chase Douglas chase.doug...@canonical.com
(cherry picked from commit 6d47d334d8a876e7e094306c313246b87016b78a)

diff --git a/src/properties.c b/src/properties.c
index 44ac306..3b3f1c5 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -519,6 +519,9 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 return BadMatch;
 
 dist = (INT32 *) prop-data;
+if (dist[0] == 0 || dist[1] == 0)
+return BadValue;
+
 if (para-scroll_dist_vert != dist[0]) {
 para-scroll_dist_vert = dist[0];
 #ifdef HAVE_SMOOTH_SCROLL
@@ -715,6 +718,9 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 return BadMatch;
 
 circdist = *(float *) prop-data;
+if (circdist == 0)
+return BadValue;
+
 para-scroll_dist_circ = circdist;
 }
 else if (property == prop_circscroll_trigger) {

commit f8d970e191e6df05a8f2c26afdeea3e27b941a62
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 17 11:02:02 2012 +1000

Reset hw-x/y to INT_MIN and skip HandleState until we have x/y events

The driver assumes x/y is always valid but after coming from a resume we may
get a few events with either ABS_X or ABS_Y (not both). Thus we process with
hw-x == 0 and hw-y == somevalue, causing cursor jumps when calculating
deltas whenver the real hw-x comes in.

Fix this by resetting hw-x/y to INT_MIN and skip state processing until
both axes are available.

For clickpads, this means handling of data will be delayed until we get
at least one motion on each axis. Button presses won't be recognised either
until that happens. It requires some skill to not trigger motion on both
axes, even more to press a button without doing so.

For non-clickpads, handling of motion events will be delayed likewise. If a
physical button is pressed immediately after resume we have to assume deltas
of x/y.
- If the next event is a new touch, it will have ABS_X/ABS_Y set anyway
- If the finger was already down, a button event is generated, and the
  finger has generated ABS_X or ABS_Y only before the event, the next event
  containing the missing data 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2012-06-13 Thread Cyril Brulebois
 configure.ac |2 +-
 src/eventcomm.c  |5 ++---
 src/properties.c |6 ++
 src/synaptics.c  |   24 +---
 src/synproto.c   |4 ++--
 5 files changed, 32 insertions(+), 9 deletions(-)

New commits:
commit d5ff9d8b0b186cf39695df84a10984eac559b746
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Jun 12 13:46:34 2012 +1000

synaptics 1.6.2

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 3e7ec2a..894d4f5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.6.1.901],
+[1.6.2],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit c1aae820601a911432c64938f03eab62bafaab2f
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri May 18 09:38:50 2012 +1000

synaptics 1.6.1.901

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 565daf2..3e7ec2a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.6.1],
+[1.6.1.901],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 17 12:10:04 2012 +1000

Don't allow for scroll distances of 0 (#49965)

It'll either hang the server or blow up with divisions by 0, whichever one
comes first.

X.Org Bug 49965 http://bugs.freedesktop.org/show_bug.cgi?id=49965

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Chase Douglas chase.doug...@canonical.com
(cherry picked from commit 6d47d334d8a876e7e094306c313246b87016b78a)

diff --git a/src/properties.c b/src/properties.c
index 44ac306..3b3f1c5 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -519,6 +519,9 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 return BadMatch;
 
 dist = (INT32 *) prop-data;
+if (dist[0] == 0 || dist[1] == 0)
+return BadValue;
+
 if (para-scroll_dist_vert != dist[0]) {
 para-scroll_dist_vert = dist[0];
 #ifdef HAVE_SMOOTH_SCROLL
@@ -715,6 +718,9 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 return BadMatch;
 
 circdist = *(float *) prop-data;
+if (circdist == 0)
+return BadValue;
+
 para-scroll_dist_circ = circdist;
 }
 else if (property == prop_circscroll_trigger) {

commit f8d970e191e6df05a8f2c26afdeea3e27b941a62
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 17 11:02:02 2012 +1000

Reset hw-x/y to INT_MIN and skip HandleState until we have x/y events

The driver assumes x/y is always valid but after coming from a resume we may
get a few events with either ABS_X or ABS_Y (not both). Thus we process with
hw-x == 0 and hw-y == somevalue, causing cursor jumps when calculating
deltas whenver the real hw-x comes in.

Fix this by resetting hw-x/y to INT_MIN and skip state processing until
both axes are available.

For clickpads, this means handling of data will be delayed until we get
at least one motion on each axis. Button presses won't be recognised either
until that happens. It requires some skill to not trigger motion on both
axes, even more to press a button without doing so.

For non-clickpads, handling of motion events will be delayed likewise. If a
physical button is pressed immediately after resume we have to assume deltas
of x/y.
- If the next event is a new touch, it will have ABS_X/ABS_Y set anyway
- If the finger was already down, a button event is generated, and the
  finger has generated ABS_X or ABS_Y only before the event, the next event
  containing the missing data will cause a jump. The fix for this is more
  invasive and this is quite a corner-case.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Chase Douglas chase.doug...@canonical.com
(cherry picked from commit cd569377cda9b5a4ee00c0137db14f625c76c40f)

diff --git a/src/synaptics.c b/src/synaptics.c
index 78660f4..cd9f936 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -3278,6 +3278,19 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState 
*hw, CARD32 now,
 return delay;
 }
 
+/* We need both and x/y, the driver can't handle just one of the two
+ * yet. But since it's possible to hit a phys button on non-clickpads
+ * without ever getting motion data first, we must continue with 0/0 for
+ * that case. */
+if (hw-x == INT_MIN || hw-y == INT_MAX) {
+if 

xserver-xorg-input-synaptics: Changes to 'upstream/1.6.1'

2012-05-21 Thread Maarten Lankhorst
New branch 'upstream/1.6.1' available with the following commits:


-- 
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/e1swpvf-0001i8...@vasks.debian.org



xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2012-05-20 Thread Cyril Brulebois
 configure.ac   |2 
 include/synaptics-properties.h |2 
 include/synaptics.h|   39 
 src/alpscomm.c |   97 -
 src/eventcomm.c|  663 +-
 src/eventcomm.h|8 
 src/properties.c   |  583 +
 src/ps2comm.c  |  534 
 src/ps2comm.h  |   21 
 src/psmcomm.c  |   71 -
 src/synaptics.c| 2569 +
 src/synapticsstr.h |  361 ++---
 src/synproto.c |   42 
 src/synproto.h |   54 
 test/eventcomm-test.c  |   86 -
 test/fake-symbols.c|  176 +-
 test/fake-symbols.h|  169 +-
 tools/synclient.c  |  588 -
 tools/syndaemon.c  |  604 -
 19 files changed, 3413 insertions(+), 3256 deletions(-)

New commits:
commit e0f5688994baa85a8c658120681575cdd0ba2a58
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri May 11 10:30:21 2012 +1000

synaptics 1.6.1

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index e5b92f9..565daf2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.6.0],
+[1.6.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 7f2d9d88204c62de3cb63b48001b9e2408d3a20d
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri May 11 10:54:47 2012 +1000

tools: coasting speed is not capped at 20, cap it at 255

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 0352c67fa2a7224b5a3bf03a934b3c7af42b4f51)

diff --git a/tools/synclient.c b/tools/synclient.c
index 7ec6923..f08a275 100644
--- a/tools/synclient.c
+++ b/tools/synclient.c
@@ -130,7 +130,7 @@ static struct Parameter params[] = {
 {PalmDetect,PT_BOOL,   0, 1, SYNAPTICS_PROP_PALM_DETECT, 
8,  0},
 {PalmMinWidth,  PT_INT,0, 15,
SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 0},
 {PalmMinZ,  PT_INT,0, 255,   
SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 1},
-{CoastingSpeed, PT_DOUBLE, 0, 20,
SYNAPTICS_PROP_COASTING_SPEED,  0 /* float*/,   0},
+{CoastingSpeed, PT_DOUBLE, 0, 255,
SYNAPTICS_PROP_COASTING_SPEED, 0 /* float*/,   0},
 {CoastingFriction,  PT_DOUBLE, 0, 255,   
SYNAPTICS_PROP_COASTING_SPEED,  0 /* float*/,   1},
 {PressureMotionMinZ,PT_INT,1, 255,   
SYNAPTICS_PROP_PRESSURE_MOTION, 32, 0},
 {PressureMotionMaxZ,PT_INT,1, 255,   
SYNAPTICS_PROP_PRESSURE_MOTION, 32, 1},

commit ace20a02c371478f6a9d224dfd31ea219d91fc46
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed May 9 14:26:40 2012 +1000

Fix coasting speed trigger

CoastingSpeed is defined as scrolls/s. The previous code just used
delta/seconds which depended on the device coordinate range and exceeded the
default CoastingSpeed at almost any scroll event.

Divide the estimated delta by the scroll distance to get the accurate
scrolls/s number. Since that now changes the contents of what's in
coast_speed_y, change the users of that too.

http://bugzilla.redhat.com/813686

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 0de4445ff8e75aab208faf6383e76045934c6720)

diff --git a/src/synaptics.c b/src/synaptics.c
index ee627b3..30d79c5 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2456,7 +2456,7 @@ start_coasting(SynapticsPrivate * priv, struct 
SynapticsHwState *hw,
 double dy =
 estimate_delta(HIST(0).y, HIST(1).y, HIST(2).y, HIST(3).y);
 if (pkt_time  0) {
-double scrolls_per_sec = dy / pkt_time;
+double scrolls_per_sec = (dy / abs(para-scroll_dist_vert)) / 
pkt_time;
 
 if (fabs(scrolls_per_sec) = para-coasting_speed) {
 priv-scroll.coast_speed_y = scrolls_per_sec;
@@ -2468,7 +2468,7 @@ start_coasting(SynapticsPrivate * priv, struct 
SynapticsHwState *hw,
 double dx =
 estimate_delta(HIST(0).x, HIST(1).x, HIST(2).x, HIST(3).x);
 if (pkt_time  0) {
-double scrolls_per_sec = dx / pkt_time;
+double scrolls_per_sec = (dx / abs(para-scroll_dist_vert)) / 
pkt_time;
 
 if (fabs(scrolls_per_sec) = para-coasting_speed) {
 priv-scroll.coast_speed_x = scrolls_per_sec;
@@ -2480,7 +2480,7 @@ start_coasting(SynapticsPrivate * priv, struct 
SynapticsHwState *hw,
 double da = estimate_delta_circ(priv);
 
 if (pkt_time  0) {
-double scrolls_per_sec = da / pkt_time;
+

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2012-05-06 Thread Cyril Brulebois
 configure.ac  |8 ++--
 man/synaptics.man |5 +
 src/eventcomm.c   |2 +-
 src/synaptics.c   |   47 +--
 src/synproto.c|   27 +--
 src/synproto.h|3 ++-
 6 files changed, 76 insertions(+), 16 deletions(-)

New commits:
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, 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2012-04-27 Thread Cyril Brulebois
 conf/50-synaptics.conf |2 -
 configure.ac   |2 -
 man/synaptics.man  |   53 +-
 src/eventcomm.c|   29 +-
 src/synaptics.c|   98 +++--
 src/synapticsstr.h |1 
 src/synproto.c |   37 --
 tools/synclient.c  |   13 +-
 8 files changed, 146 insertions(+), 89 deletions(-)

New commits:
commit 085662e9fe13d46b9633f1b7b9e8f95bacdec30c
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Apr 27 09:20:56 2012 +1000

synaptics 1.5.99.904

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index de136f2..eaa1c98 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.903],
+[1.5.99.904],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 58581bfbecfc15e7fa63c2fa4be20d2b0654f9b8
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Apr 26 12:00:49 2012 +1000

Reset scroll delta when no finger is touching

Provides for a more consistent scrolling experience, otherwise delta
leftovers may trigger extra events even when the actual scrolling action
stays the same.

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 893a5c8..51ecda5 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2398,6 +2398,8 @@ HandleScrolling(SynapticsPrivate *priv, struct 
SynapticsHwState *hw,
 /* scroll detection */
 if (finger  priv-finger_state == FS_UNTOUCHED) {
stop_coasting(priv);
+priv-scroll.delta_y = 0;
+priv-scroll.delta_x = 0;
if (para-circular_scrolling) {
if ((para-circular_trigger == 0  edge) ||
(para-circular_trigger == 1  edge  TOP_EDGE) ||

commit 1a76d9f00e1e54ba912a47aa665968e0cfe1b8a0
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Apr 26 11:47:19 2012 +1000

Don't unconditionally divide by scroll_dist_vert (#46617)

Regression introduced in cddab79c408db3b13905a2be72aff4f7bf1406f8.

If an event has a delta of less than scroll_dist_vert, the delta is
unconditionally divided by the distance, leaving some remainder close to 0
and never actually triggering the scroll amount.

Fix this by working with the increment, not the normalised values.

X.Org Bug 46617 http://bugs.freedesktop.org/show_bug.cgi?id=46617

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 2a43f95..893a5c8 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2864,31 +2864,29 @@ post_scroll_events(const InputInfoPtr pInfo)
 SynapticsParameters *para = priv-synpara;
 
 /* smooth scrolling uses the dist as increment */
-priv-scroll.delta_y /= para-scroll_dist_vert;
-priv-scroll.delta_x /= para-scroll_dist_horiz;
 
-while (priv-scroll.delta_y = -1.0)
+while (priv-scroll.delta_y = -para-scroll_dist_vert)
 {
 post_button_click(pInfo, 4);
-priv-scroll.delta_y += 1.0;
+priv-scroll.delta_y += para-scroll_dist_vert;
 }
 
-while (priv-scroll.delta_y = 1.0)
+while (priv-scroll.delta_y = para-scroll_dist_vert)
 {
 post_button_click(pInfo, 5);
-priv-scroll.delta_y -= 1.0;
+priv-scroll.delta_y -= para-scroll_dist_vert;
 }
 
-while (priv-scroll.delta_x = -1.0)
+while (priv-scroll.delta_x = -para-scroll_dist_horiz)
 {
 post_button_click(pInfo, 6);
-priv-scroll.delta_x += 1.0;
+priv-scroll.delta_x += para-scroll_dist_horiz;
 }
 
-while (priv-scroll.delta_x = 1.0)
+while (priv-scroll.delta_x = para-scroll_dist_horiz)
 {
 post_button_click(pInfo, 7);
-priv-scroll.delta_x -= 1.0;
+priv-scroll.delta_x -= para-scroll_dist_horiz;
 }
 #endif
 }
@@ -2934,13 +2932,13 @@ repeat_scrollbuttons(const InputInfoPtr pInfo,
id = ffs(change);
change = ~(1  (id - 1));
if (id == 4)
-   priv-scroll.delta_y -= 1.0;
+   priv-scroll.delta_y -= para-scroll_dist_vert;
else if (id == 5)
-   priv-scroll.delta_y += 1.0;
+   priv-scroll.delta_y += para-scroll_dist_vert;
else if (id == 6)
-   priv-scroll.delta_x -= 1.0;
+   priv-scroll.delta_x -= para-scroll_dist_horiz;
else if (id == 7)
-   priv-scroll.delta_x += 1.0;
+   priv-scroll.delta_x += para-scroll_dist_horiz;
}
 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2012-04-01 Thread Cyril Brulebois
 conf/50-synaptics.conf |   18 +
 configure.ac   |2 -
 man/synaptics.man  |2 +
 src/eventcomm.c|3 +-
 src/synaptics.c|   51 +++--
 src/synapticsstr.h |2 -
 src/synproto.c |   13 +++-
 src/synproto.h |1 
 8 files changed, 78 insertions(+), 14 deletions(-)

New commits:
commit 4a80c0dc38ea4dafcb112191c2dd7e0082193263
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Mar 23 10:38:20 2012 +1000

synaptics 1.5.99.902

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index af1bc2a..0a85d13 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.901],
+[1.5.99.902],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit b6779458bcdb049480310ba1acb3991ad061ffc7
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Mar 22 15:15:47 2012 +1000

conf: enable right-button click by default on non-Apple clickpads

The right-half of the bottom 18% of the touchpad are enabled as right button
by default. On Apple touchpads (these don't have marking for the right
button) disable them by default.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/conf/50-synaptics.conf b/conf/50-synaptics.conf
index 5ec7e78..822f7a4 100644
--- a/conf/50-synaptics.conf
+++ b/conf/50-synaptics.conf
@@ -24,3 +24,21 @@ Section InputClass
 MatchDevicePath /dev/input/mouse*
 Option Ignore on
 EndSection
+
+# This option enables the bottom right corner to be a right button on
+# non-synaptics clickpads.
+# This option is only interpreted by clickpads.
+Section InputClass
+Identifier Default clickpad buttons
+MatchDriver synaptics
+Option SoftButtonAreas 50% 0 82% 0 0 0 0 0
+EndSection
+
+# This option disables software buttons on Apple touchpads.
+# This option is only interpreted by clickpads.
+Section InputClass
+Identifier Disable clickpad buttons on Apple touchpads
+MatchProduct Apple
+MatchDriver synaptics
+Option SoftButtonAreas 0 0 0 0 0 0 0 0
+EndSection

commit c9cf8827b129a553ad3cd3d7ee6f463a6e94227d
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Mar 22 15:20:45 2012 +1000

use xf86SetStrOption for SoftButtonAreas

This way the option is reported in the log when parsed.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/src/synaptics.c b/src/synaptics.c
index 789de81..f07fd13 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -521,7 +521,7 @@ static void set_softbutton_areas_option(InputInfoPtr pInfo)
 if (!pars-clickpad)
 return;
 
-option_string = xf86CheckStrOption(pInfo-options, SoftButtonAreas, 
NULL);
+option_string = xf86SetStrOption(pInfo-options, SoftButtonAreas, NULL);
 if (!option_string)
 return;
 

commit cea97dd5e09b165c2a4b25741a03f152ed37
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Mar 14 16:47:26 2012 +1000

Allow soft button areas to be specified in % of the touchpad

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Chase Douglas chase.doug...@canonical.com

diff --git a/man/synaptics.man b/man/synaptics.man
index 23862e3..864a95f 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -526,6 +526,8 @@ parameters define the area of the right button, and the 
second four parameters
 define the area of the middle button. The areas are defined by the left, right,
 top, and bottom edges as sequential values of the property. If any edge is set
 to 0, the button is assumed to extend to infinity in the given direction.
+Any of the values may be given as percentage of the touchpad width or
+height, whichever applies.
 .
 When the user performs a click within the defined soft button areas, the right
 or middle click action is performed.
diff --git a/src/synaptics.c b/src/synaptics.c
index 3c5b12d..789de81 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -511,10 +511,12 @@ static void set_softbutton_areas_option(InputInfoPtr 
pInfo)
 SynapticsPrivate *priv = pInfo-private;
 SynapticsParameters *pars = priv-synpara;
 int values[8];
+int in_percent = 0; /* bitmask for which ones are in % */
 char *option_string;
 char *next_num;
 char *end_str;
 int i;
+int width, height;
 
 if (!pars-clickpad)
 return;
@@ -534,12 +536,36 @@ static void set_softbutton_areas_option(InputInfoPtr 
pInfo)
 values[i] = value;
 
 if (next_num != end_str)
+{
+if (end_str  *end_str == '%')
+{
+in_percent |= 1  i;
+end_str++;
+}
 next_num = 

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

2012-03-21 Thread Chase Douglas
 Makefile.am|8 
 README |6 
 conf/11-x11-synaptics.fdi  |   10 
 conf/50-synaptics.conf |   21 
 configure.ac   |   48 -
 include/Makefile.am|1 
 include/synaptics-properties.h |   15 
 man/Makefile.am|3 
 man/synaptics.man  |  128 ++-
 man/syndaemon.man  |   41 
 src/Makefile.am|   12 
 src/alpscomm.c |   19 
 src/alpscomm.h |   33 
 src/eventcomm.c|  766 +++---
 src/eventcomm.h|   11 
 src/properties.c   |  143 +++
 src/ps2comm.c  |  101 +-
 src/ps2comm.h  |   15 
 src/psmcomm.c  |   39 
 src/synaptics.c| 1703 +
 src/synapticsstr.h |   96 +-
 src/synproto.c |  158 +++
 src/synproto.h |   59 -
 test/.gitignore|6 
 test/Makefile.am   |   18 
 test/eventcomm-test.c  |  331 +++
 test/fake-symbols.c|  497 +++
 test/fake-symbols.h|  186 
 test/test-pad.c|  121 --
 test/testprotocol.c|   82 -
 tools/Makefile.am  |3 
 tools/synclient.c  |   25 
 tools/syndaemon.c  |   49 -
 33 files changed, 3660 insertions(+), 1094 deletions(-)

New commits:
commit dd650a064b98b1c325a38e1370cc11059c257b07
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Mar 14 08:56:45 2012 +1000

synaptics 1.5.99.901

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 29f6e68..af1bc2a 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],
+[1.5.99.901],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit fee18d8567efd2e5abf6b29eb1ae9ee0e3858013
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Mar 13 16:08:12 2012 +1000

Soft buttons are only available on clickpad devices, disable them otherwise.

If the clickpad support is runtime enabled/disabled, the property
appears/disappears accordingly.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Chase Douglas chase.doug...@canonical.com

diff --git a/man/synaptics.man b/man/synaptics.man
index aaec35f..23862e3 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -520,6 +520,7 @@ the total height of the touchpad. Property: Synaptics Area
 .
 .TP
 .BI Option \*qSoftButtonAreas\*q \*q RBL RBR RBT RBB MBL MBR MBT MBB \*q
+This option is only available on ClickPad devices.
 Enable soft button click area support on ClickPad devices. The first four
 parameters define the area of the right button, and the second four parameters
 define the area of the middle button. The areas are defined by the left, right,
@@ -942,6 +943,7 @@ default.
 
 .TP 7
 .BI Synaptics Soft Button Areas
+This property is only available on ClickPad devices.
 The Right and middle soft button areas are used to support right and middle
 click actions on a ClickPad device. Providing 0 for all values of a given 
button
 disables the button area.
diff --git a/src/properties.c b/src/properties.c
index 5cd3088..783b516 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -151,6 +151,24 @@ InitFloatAtom(DeviceIntPtr dev, char *name, int nvalues, 
float *values)
 return atom;
 }
 
+static void
+InitSoftButtonProperty(InputInfoPtr pInfo)
+{
+SynapticsPrivate *priv = (SynapticsPrivate *) pInfo-private;
+SynapticsParameters *para = priv-synpara;
+int values[8];
+
+values[0] = para-softbutton_areas[0][0];
+values[1] = para-softbutton_areas[0][1];
+values[2] = para-softbutton_areas[0][2];
+values[3] = para-softbutton_areas[0][3];
+values[4] = para-softbutton_areas[1][0];
+values[5] = para-softbutton_areas[1][1];
+values[6] = para-softbutton_areas[1][2];
+values[7] = para-softbutton_areas[1][3];
+prop_softbutton_areas = InitAtom(pInfo-dev, 
SYNAPTICS_PROP_SOFTBUTTON_AREAS, 32, 8, values);
+}
+
 void
 InitDeviceProperties(InputInfoPtr pInfo)
 {
@@ -301,15 +319,8 @@ InitDeviceProperties(InputInfoPtr pInfo)
 values[3] = para-area_bottom_edge;
 prop_area = InitAtom(pInfo-dev, SYNAPTICS_PROP_AREA, 32, 4, values);
 
-values[0] = para-softbutton_areas[0][0];
-values[1] = para-softbutton_areas[0][1];
-values[2] = para-softbutton_areas[0][2];
-values[3] = para-softbutton_areas[0][3];
-values[4] = para-softbutton_areas[1][0];
-values[5] = para-softbutton_areas[1][1];
-values[6] = para-softbutton_areas[1][2];
-values[7] = para-softbutton_areas[1][3];
-prop_softbutton_areas = InitAtom(pInfo-dev, 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2012-03-20 Thread Cyril Brulebois
Rebased ref, commits from common ancestor:
commit dd650a064b98b1c325a38e1370cc11059c257b07
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Mar 14 08:56:45 2012 +1000

synaptics 1.5.99.901

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 29f6e68..af1bc2a 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],
+[1.5.99.901],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit fee18d8567efd2e5abf6b29eb1ae9ee0e3858013
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Mar 13 16:08:12 2012 +1000

Soft buttons are only available on clickpad devices, disable them otherwise.

If the clickpad support is runtime enabled/disabled, the property
appears/disappears accordingly.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Chase Douglas chase.doug...@canonical.com

diff --git a/man/synaptics.man b/man/synaptics.man
index aaec35f..23862e3 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -520,6 +520,7 @@ the total height of the touchpad. Property: Synaptics Area
 .
 .TP
 .BI Option \*qSoftButtonAreas\*q \*q RBL RBR RBT RBB MBL MBR MBT MBB \*q
+This option is only available on ClickPad devices.
 Enable soft button click area support on ClickPad devices. The first four
 parameters define the area of the right button, and the second four parameters
 define the area of the middle button. The areas are defined by the left, right,
@@ -942,6 +943,7 @@ default.
 
 .TP 7
 .BI Synaptics Soft Button Areas
+This property is only available on ClickPad devices.
 The Right and middle soft button areas are used to support right and middle
 click actions on a ClickPad device. Providing 0 for all values of a given 
button
 disables the button area.
diff --git a/src/properties.c b/src/properties.c
index 5cd3088..783b516 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -151,6 +151,24 @@ InitFloatAtom(DeviceIntPtr dev, char *name, int nvalues, 
float *values)
 return atom;
 }
 
+static void
+InitSoftButtonProperty(InputInfoPtr pInfo)
+{
+SynapticsPrivate *priv = (SynapticsPrivate *) pInfo-private;
+SynapticsParameters *para = priv-synpara;
+int values[8];
+
+values[0] = para-softbutton_areas[0][0];
+values[1] = para-softbutton_areas[0][1];
+values[2] = para-softbutton_areas[0][2];
+values[3] = para-softbutton_areas[0][3];
+values[4] = para-softbutton_areas[1][0];
+values[5] = para-softbutton_areas[1][1];
+values[6] = para-softbutton_areas[1][2];
+values[7] = para-softbutton_areas[1][3];
+prop_softbutton_areas = InitAtom(pInfo-dev, 
SYNAPTICS_PROP_SOFTBUTTON_AREAS, 32, 8, values);
+}
+
 void
 InitDeviceProperties(InputInfoPtr pInfo)
 {
@@ -301,15 +319,8 @@ InitDeviceProperties(InputInfoPtr pInfo)
 values[3] = para-area_bottom_edge;
 prop_area = InitAtom(pInfo-dev, SYNAPTICS_PROP_AREA, 32, 4, values);
 
-values[0] = para-softbutton_areas[0][0];
-values[1] = para-softbutton_areas[0][1];
-values[2] = para-softbutton_areas[0][2];
-values[3] = para-softbutton_areas[0][3];
-values[4] = para-softbutton_areas[1][0];
-values[5] = para-softbutton_areas[1][1];
-values[6] = para-softbutton_areas[1][2];
-values[7] = para-softbutton_areas[1][3];
-prop_softbutton_areas = InitAtom(pInfo-dev, 
SYNAPTICS_PROP_SOFTBUTTON_AREAS, 32, 8, values);
+if (para-clickpad)
+InitSoftButtonProperty(pInfo);
 
 values[0] = para-hyst_x;
 values[1] = para-hyst_y;
@@ -407,9 +418,20 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 para-tap_time_2 = timeouts[1];
 para-click_time = timeouts[2];
 } else if (property == prop_clickpad) {
+BOOL value;
+
 if (prop-size != 1 || prop-format != 8 || prop-type != XA_INTEGER)
 return BadMatch;
 
+value = *(BOOL*)prop-data;
+if (!para-clickpad  value  !prop_softbutton_areas)
+InitSoftButtonProperty(pInfo);
+else if (para-clickpad  !value  prop_softbutton_areas)
+{
+XIDeleteDeviceProperty(dev, prop_softbutton_areas, FALSE);
+prop_softbutton_areas = 0;
+}
+
 para-clickpad = *(BOOL*)prop-data;
 } else if (property == prop_tap_fast)
 {
diff --git a/src/synaptics.c b/src/synaptics.c
index 4275d2a..898130e 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -516,6 +516,9 @@ static void set_softbutton_areas_option(InputInfoPtr pInfo)
 char *end_str;
 int i;
 
+if (!pars-clickpad)
+return;
+
 option_string = xf86CheckStrOption(pInfo-options, SoftButtonAreas, 
NULL);
 if (!option_string)
 return;

commit c546779b32d8be23475b3b062e3ebc9235365c0d
Author: Chase Douglas 

xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2011-12-31 Thread Cyril Brulebois
 Makefile.am|8 
 README |6 
 conf/11-x11-synaptics.fdi  |   10 
 conf/50-synaptics.conf |   21 
 configure.ac   |   38 -
 include/Makefile.am|1 
 include/synaptics-properties.h |9 
 man/Makefile.am|3 
 man/synaptics.man  |   94 +-
 man/syndaemon.man  |   41 -
 src/Makefile.am|9 
 src/alpscomm.c |   25 
 src/alpscomm.h |   33 
 src/eventcomm.c|  384 ++
 src/eventcomm.h|6 
 src/properties.c   |  172 +++-
 src/ps2comm.c  |  129 +--
 src/ps2comm.h  |   15 
 src/psmcomm.c  |   55 -
 src/synaptics.c| 1473 +++--
 src/synapticsstr.h |   65 +
 src/synproto.h |   33 
 test/.gitignore|6 
 test/Makefile.am   |   15 
 test/eventcomm-test.c  |  285 +++
 test/fake-symbols.c|  452 
 test/fake-symbols.h|  187 +
 test/test-pad.c|  121 ---
 test/testprotocol.c|   82 --
 tools/Makefile.am  |3 
 tools/synclient.c  |3 
 tools/syndaemon.c  |   63 +
 32 files changed, 2542 insertions(+), 1305 deletions(-)

New commits:
commit 9f9b55ab55ed5251c1607c59d8817231d076d82c
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Dec 12 11:35:37 2011 +1000

test: fix build errors introduced by upstream server change

Introduced by upstream change xorg-server-1.11.99.1-33-g09e4b78,
Fix gcc -Wwrite-strings warnings in xf86 ddx

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/test/fake-symbols.c b/test/fake-symbols.c
index a312aa0..2d94622 100644
--- a/test/fake-symbols.c
+++ b/test/fake-symbols.c
@@ -44,7 +44,7 @@ xf86ReplaceIntOption(OPTTYPE optlist, const char *name, const 
int val)
 }
 
 _X_EXPORT char *
-xf86SetStrOption(OPTTYPE optlist, const char *name, char *deflt)
+xf86SetStrOption(OPTTYPE optlist, const char *name, CONST char *deflt)
 {
 return NULL;
 }
@@ -60,7 +60,7 @@ xf86AddNewOption(OPTTYPE head, const char *name, const char 
*val)
 {
 return NULL;
 }
-_X_EXPORT char *
+_X_EXPORT CONST char *
 xf86FindOptionValue(OPTTYPE options, const char *name)
 {
 return NULL;
diff --git a/test/fake-symbols.h b/test/fake-symbols.h
index 7c74f7a..a297d28 100644
--- a/test/fake-symbols.h
+++ b/test/fake-symbols.h
@@ -3,8 +3,10 @@
 
 #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) = 14
 #define OPTTYPE XF86OptionPtr
+#define CONST const
 #else
 #define OPTTYPE pointer
+#define CONST 
 #endif
 
 extern int xf86ReadSerial (int fd, void *buf, int count);
@@ -17,15 +19,16 @@ extern int xf86SetSerialSpeed (int fd, int speed);
 extern OPTTYPE xf86ReplaceIntOption(OPTTYPE optlist, const char *name, const 
int val);
 extern OPTTYPE xf86AddNewOption(OPTTYPE head, const char *name, const char 
*val);
 extern char* xf86OptionName(OPTTYPE opt);
-extern char* xf86FindOptionValue(OPTTYPE options, const char *name);
+extern CONST char* xf86FindOptionValue(OPTTYPE options, const char *name);
 extern int xf86NameCmp(const char *s1, const char *s2);
 extern char* xf86CheckStrOption(OPTTYPE optlist, const char *name, char 
*deflt);
 
 
-extern char * xf86SetStrOption(OPTTYPE optlist, const char *name, char *deflt);
+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 char* xf86FindOptionValue(OPTTYPE options, const char *name);
+extern CONST char* xf86FindOptionValue(OPTTYPE options, const char *name);
 extern char* xf86OptionName(OPTTYPE opt);
 extern char *xf86OptionValue(OPTTYPE opt);
 extern int xf86NameCmp(const char *s1, const char *s2);

commit b7e65f04f5f0c17ac8a26393134cc7e8418ccdec
Author: Cyril Brulebois k...@debian.org
Date:   Mon Dec 12 01:35:27 2011 +0100

Revert: eventcomm: replace synaptics-custom TEST_BIT with server's 
BitIsOn.

This commit reverts 13543b156d78bc4d01a19844a5ee8f283269621b

As seen in Debian's #648488, this switch causes a regression on
PowerPC, especially seen on iBook G4 with appletouch. Take a defensive
stance and revert back to a working state until things have been figured
out and fixed properly.

Since things have evolved and since that revert triggers a lot of
conflicts, the following method was applied:
 - manual reintroduction of the 3 removed macros: OFF, LONG, TEST_BIT
 - coccinelle semantic patch to revert from BitIsOn to TEST_BIT

Coccinelle semantic patch:
  @@
  

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2011-11-11 Thread Cyril Brulebois
Rebased ref, commits from common ancestor:


-- 
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/e1roz4o-0003sl...@vasks.debian.org



xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2011-09-05 Thread Timo Aaltonen
 Makefile.am|8 
 conf/50-synaptics.conf |8 
 configure.ac   |   36 ++-
 include/Makefile.am|1 
 man/Makefile.am|3 
 man/syndaemon.man  |   41 +++-
 src/Makefile.am|9 
 src/alpscomm.c |   13 -
 src/alpscomm.h |   33 ---
 src/eventcomm.c|  374 
 src/eventcomm.h|6 
 src/properties.c   |   35 +++
 src/ps2comm.c  |   91 -
 src/ps2comm.h  |   13 +
 src/psmcomm.c  |   37 +---
 src/synaptics.c|  234 +
 src/synapticsstr.h |   12 -
 src/synproto.h |   21 --
 test/.gitignore|6 
 test/Makefile.am   |   15 +
 test/eventcomm-test.c  |  285 ++
 test/fake-symbols.c|  452 +
 test/fake-symbols.h|  178 +++
 test/test-pad.c|  121 -
 test/testprotocol.c|   82 
 tools/Makefile.am  |3 
 tools/synclient.c  |1 
 tools/syndaemon.c  |7 
 28 files changed, 1497 insertions(+), 628 deletions(-)

New commits:
commit 065a0b495d2a7eb76b61f9eec85248aefae4c8ee
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Sep 2 16:04:07 2011 +1000

synaptics 1.5.0

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 09306ec..f13fcdd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.4.99.1],
+[1.5.0],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 3489e2467d43217971f17b9344fc2772cc0f164d
Author: Alexandr Shadchin alexandr.shadc...@gmail.com
Date:   Fri Aug 26 18:42:08 2011 +0600

The correct maximum values for pressure and finger width

Signed-off-by: Alexandr Shadchin alexandr.shadc...@gmail.com
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 7a72af1ce105fd857214bb641a8fa2cfd150a5f7)

diff --git a/src/synaptics.c b/src/synaptics.c
index cf91b9f..d036bdf 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -231,7 +231,7 @@ SanitizeDimensions(InputInfoPtr pInfo)
 if (priv-minp = priv-maxp)
 {
priv-minp = 0;
-   priv-maxp = 256;
+   priv-maxp = 255;
 
xf86IDrvMsg(pInfo, X_PROBED,
invalid pressure range.  defaulting to %d - %d\n,
@@ -241,7 +241,7 @@ SanitizeDimensions(InputInfoPtr pInfo)
 if (priv-minw = priv-maxw)
 {
priv-minw = 0;
-   priv-maxw = 16;
+   priv-maxw = 15;
 
xf86IDrvMsg(pInfo, X_PROBED,
invalid finger width range.  defaulting to %d - %d\n,
@@ -444,7 +444,7 @@ static void set_default_parameters(InputInfoPtr pInfo)
 horizHyst = pars-hyst_x = 0 ? pars-hyst_x : diag * 0.005;
 vertHyst = pars-hyst_y = 0 ? pars-hyst_y : diag * 0.005;
 
-range = priv-maxp - priv-minp;
+range = priv-maxp - priv-minp + 1;
 
 /* scaling based on defaults and a pressure of 256 */
 fingerLow = priv-minp + range * (25.0/256);
@@ -457,7 +457,7 @@ static void set_default_parameters(InputInfoPtr pInfo)
 pressureMotionMaxZ = priv-minp + range * (160.0/256);
 palmMinZ = priv-minp + range * (200.0/256);
 
-range = priv-maxw - priv-minw;
+range = priv-maxw - priv-minw + 1;
 
 /* scaling based on defaults below and a tool width of 16 */
 palmMinWidth = priv-minw + range * (10.0/16);

commit 98e8481cf4911506403b8963fc32c61a74cf679e
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Aug 19 15:57:08 2011 +1000

Bump to 1.4.99.1

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index adbf594..09306ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.4.99],
+[1.4.99.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit dd6c51499e626b1bc3ddd82949691efa667ff1c4
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Jul 28 11:02:45 2011 +1000

syndaemon: Remove superfluous message.

toggle_touchpad() already prints if we're running verbose.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/tools/syndaemon.c b/tools/syndaemon.c
index d527b76..bead545 100644
--- a/tools/syndaemon.c
+++ b/tools/syndaemon.c
@@ -449,7 +449,6 @@ void record_main_loop(Display* display, double idle_time) {
 
if (ret == 0  pad_disabled) { /* timeout = enable event */
toggle_touchpad(True);
-   if (verbose) printf(enable touchpad\n);
}
 
 } /* end while(1) */

commit ba53d850252165ba96e7abc6e7dd0648b40ee37b

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2011-07-01 Thread Cyril Brulebois
 README |6 +++---
 conf/11-x11-synaptics.fdi  |   10 +++---
 conf/50-synaptics.conf |   13 +
 configure.ac   |2 +-
 include/synaptics-properties.h |4 ++--
 man/synaptics.man  |   23 ---
 src/eventcomm.c|1 +
 src/synaptics.c|2 +-
 src/synapticsstr.h |2 +-
 tools/syndaemon.c  |   37 ++---
 10 files changed, 63 insertions(+), 37 deletions(-)

New commits:
commit a1c77348563d882a5da870d6884ee91434458689
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Jun 28 14:47:04 2011 +1000

synaptics 1.4.1

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 8558e5b..01ca49b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.4.0.901],
+[1.4.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 65c8d5c703b2f9a65e3bf86b1ad35a0d439b46aa
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon May 23 10:18:22 2011 +1000

syndaemon: don't compare against a null-property. (#37459)

synaptics_property is not set, touchpad_off_prop is the property we need to
check against.

False check for (nprops != 0) instead of (nprops  0) would result in
syndaemon always reporting a touchpad device, even if none are present.

X.Org Bug 37459 http://bugs.freedesktop.org/show_bug.cgi?id=37459

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit be83094bd98c353b0ee7894eefcb1ae91e0cae30)

diff --git a/tools/syndaemon.c b/tools/syndaemon.c
index 327f479..6e62dc5 100644
--- a/tools/syndaemon.c
+++ b/tools/syndaemon.c
@@ -465,7 +465,6 @@ dp_get_device(Display *dpy)
 XDeviceInfo *info  = NULL;
 int ndevices   = 0;
 Atom touchpad_type = 0;
-Atom synaptics_property= 0;
 Atom *properties   = NULL;
 int nprops = 0;
 int error  = 0;
@@ -495,10 +494,10 @@ dp_get_device(Display *dpy)
 
while(nprops--)
{
-   if (properties[nprops] == synaptics_property)
+   if (properties[nprops] == touchpad_off_prop)
break;
}
-   if (!nprops)
+   if (nprops  0)
{
fprintf(stderr, No synaptics properties on device '%s'.\n,
info[ndevices].name);

commit 11b70094aa66a85bc06e5c160cdc15139df94cb7
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon May 23 10:12:42 2011 +1000

syndaemon: fix abysimal indentation in dp_get_device.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit e4958186fae78770bc739be701b849f28c87cf11)

diff --git a/tools/syndaemon.c b/tools/syndaemon.c
index 47e0e6a..327f479 100644
--- a/tools/syndaemon.c
+++ b/tools/syndaemon.c
@@ -487,24 +487,24 @@ dp_get_device(Display *dpy)
properties = XListDeviceProperties(dpy, dev, nprops);
if (!properties || !nprops)
{
- fprintf(stderr, No properties on device '%s'.\n,
- info[ndevices].name);
- error = 1;
- goto unwind;
-  }
+   fprintf(stderr, No properties on device '%s'.\n,
+   info[ndevices].name);
+   error = 1;
+   goto unwind;
+   }
 
while(nprops--)
{
- if (properties[nprops] == synaptics_property)
- break;
-  }
+   if (properties[nprops] == synaptics_property)
+   break;
+   }
if (!nprops)
{
- fprintf(stderr, No synaptics properties on device '%s'.\n,
- info[ndevices].name);
- error = 1;
- goto unwind;
-  }
+   fprintf(stderr, No synaptics properties on device '%s'.\n,
+   info[ndevices].name);
+   error = 1;
+   goto unwind;
+   }
 
break; /* Yay, device is suitable */
}

commit ee216923ddaf4492c7e1eb026fa0b4f5e8ed5ec9
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 19 09:45:10 2011 +1000

include: update documentation for capabilities property

pressure and width were added recently

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit 0c8971c80c21d7541d9614ac67a8d4954d4859ec)

diff --git a/include/synaptics-properties.h b/include/synaptics-properties.h
index bdb2112..77a1806 100644
--- a/include/synaptics-properties.h
+++ b/include/synaptics-properties.h
@@ -145,8 +145,8 @@
 /* 8 bit (BOOL), 1 value, tap-and-drag 

xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2011-03-05 Thread Cyril Brulebois
 configure.ac  |2 +-
 src/psmcomm.c |4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit de0dfb76444ad4160468d00515876c91a9fa20bf
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Mar 4 12:36:24 2011 +1000

synaptics 1.4.0

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index ea66935..c057ffb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-[1.3.99.901],
+[1.4.0],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit fefb3b63c589b0758c02777e652f05e537ba663f
Author: Julien Cristau jcris...@debian.org
Date:   Fri Feb 25 20:41:12 2011 +0100

Fix build on BSD

local was renamed to pInfo in 81ad2e389d11691d5c2687d83150e8e9033cfe76,
but a couple places were missed.

Signed-off-by: Julien Cristau jcris...@debian.org
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/src/psmcomm.c b/src/psmcomm.c
index 66e8d1e..741cd1d 100644
--- a/src/psmcomm.c
+++ b/src/psmcomm.c
@@ -147,7 +147,7 @@ PSMQueryHardware(InputInfoPtr pInfo)
 synhw = (struct SynapticsHwInfo*)priv-proto_data;
 
 /* is the synaptics touchpad active? */
-if (!PSMQueryIsSynaptics(local))
+if (!PSMQueryIsSynaptics(pInfo))
return FALSE;
 
 xf86Msg(X_PROBED, %s synaptics touchpad found\n, pInfo-name);
@@ -167,7 +167,7 @@ PSMReadHwState(InputInfoPtr pInfo,
   struct SynapticsProtocolOperations *proto_ops,
   struct CommData *comm, struct SynapticsHwState *hwRet)
 {
-return psaux_proto_operations.ReadHwState(local, proto_ops, comm, hwRet);
+return psaux_proto_operations.ReadHwState(pInfo, proto_ops, comm, hwRet);
 }
 
 static Bool PSMAutoDevProbe(InputInfoPtr pInfo)


-- 
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/e1pvtd7-0007xn...@alioth.debian.org



xserver-xorg-input-synaptics: Changes to 'upstream-unstable'

2011-02-20 Thread Cyril Brulebois
New branch 'upstream-unstable' available with the following commits:


-- 
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/e1prmsj-0008au...@alioth.debian.org



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

2011-01-26 Thread Christopher Halse Rogers
New branch 'upstream-ubuntu' available with the following commits:


-- 
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/e1piiq0-m0...@alioth.debian.org



xserver-xorg-input-synaptics: Changes to 'upstream-experimental'

2010-10-18 Thread Robert Hooker
New branch 'upstream-experimental' available with the following commits:
commit 1a9495a74c41d956751177807602383ce4549c37
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Sep 1 09:04:11 2010 +1000

synaptics 1.3.0

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit 33632e447b311950729350e5802b5b1ee9616677
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Aug 23 15:12:05 2010 +1000

man: use seconds² instead of seconds per second

Makes it hopefully slightly less confusing. Should have been amended before
the push but ENOTENOUGHCOFFEE.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit 7a741ddedab477baea21f3d8ce6390b7bf72399f
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Aug 23 11:55:45 2010 +1000

synaptics 1.2.99.901

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit 59151a548dcbac6f68e4f921b5c47aea4e5bc2a3
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Aug 20 11:09:04 2010 +1000

Enable coasting by default with a value of 20.

The default value for friction coasting makes coasting much more useful now
since it stops coasting after a while. Enable it by default, the man page
already claims a default of 20 anyway.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit 56655fd15f676fea143f3963e23b464b275b2e77
Author: Patrick Curran pjcur...@wisc.edu
Date:   Fri Jul 23 17:28:01 2010 -0500

Added friction physics so coasting can stop on its own.

When you are coasting (but not corner coasting) you might want the
scrolling to slow down and stop on its own.  This also lets you
start coasting while using a two finger scroll.

Signed-off-by: Patrick Curran pjcur...@wisc.edu
Reviewed-by: Peter Hutterer peter.hutte...@who-t.net
Tested-by: Peter Hutterer peter.hutte...@who-t.net
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit a6ca4d2523904b7ce49edc29ba408979bdf0d45e
Author: Chris Bagwell ch...@cnpbagwell.com
Date:   Wed Aug 18 22:09:45 2010 -0500

Reset X/Y hist on multi finger transition to fix jumps

Most modern touchpads track 1st finger during multi-touch.  If first finger
is lifted then a jump will occur as X/Y transition to next finger location.
Resetting X/Y history as each finger is lifted will hide this transition.

Synaptics hw specs claim older hardware report X/Y values that are average
point between multi-fingers which can cause unwanted jump.  Reset X/Y
history during transition to new fingers to hide this as well.

Signed-off-by: Chris Bagwell ch...@cnpbagwell.com
Tested-by: Peter Hutterer peter.hutte...@who-t.net
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit b774a1dba2f1f45c94fe898fe8b5ce258cbcddfc
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Aug 19 14:25:29 2010 +1000

Increase the default acceleration factor.

With 4e0e53fcba6fd99d458df1905d055d63360155c0 the driver got it's own
acceleration mechanism. This slowed down the pointer movement a lot,
especially on ALPS touchpads. Increase the default acceleration factor to
accommodate for this.

The number itself is chosen through guesswork and informal tests.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Tested-by: Magnus Kessler magnus.kess...@gmx.net
Reviewed-by: Magnus Kessler magnus.kess...@gmx.net

commit 4b0003c3d4cee1f5c6675bde5701e2169959932a
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Aug 19 14:22:03 2010 +1000

Up the precision of MaxSpeed and AccelFactor log output.

MaxSpeed usually has two decimals that matter, AccelFactor doesn't get
intersting until the second decimal, so print 3.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit 7acdbb7cf95299fda29d6bea691af925f5182749
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Aug 17 11:34:32 2010 +1000

synclient: don't print missing if a property doesn't exist.

Virtually all touchpads still in use have one or more properties missing
anyway. If it's not in the list, then it's missing.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

commit abb448a253cb0b3003038fbaa1daa9494c396e8f
Author: Chris Bagwell ch...@cnpbagwell.com
Date:   Wed Jul 7 21:35:22 2010 -0500

Align EmulateTwoFinger* docs to current behavior.

This corrects man page to mention EmulateTwoFingerMinW
and EmulateTwoFingerMinZ are considered together.  Old
man page read like driver would emulate two-finger even
if only pressure OR width (but not both) were supported.

Next, add note to align man page with patch that defaults
to enabling two-finger emulation on hardware that does not
support two-finger detection but does support pressure and
width detection.

Signed-off-by: Chris Bagwell ch...@cnpbagwell.com

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

2010-03-26 Thread Timo Aaltonen
 configure.ac  |2 +-
 man/synaptics.man |4 ++--
 man/synclient.man |2 +-
 src/synaptics.c   |   13 -
 4 files changed, 12 insertions(+), 9 deletions(-)

New commits:
commit a0d6e90b26044258473d8dae8a53c5adbe2681f1
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Mar 26 15:13:40 2010 +1000

synaptics 1.2.2

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 00181bc..dd2bef7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-synaptics],
-1.2.1,
+1.2.2,
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 xf86-input-synaptics)
 

commit ba0d227a6da35dd21ba48ded65cabff16ef423ce
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Wed Mar 17 13:52:43 2010 +1000

After closing the fd, reset it to -1.

A DeviceOff() followed by DeviceClose() (which calls DeviceOff()) would try
to close the fd twice, in addition to calling various hooks.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Julien Cristau jcris...@debian.org
(cherry picked from commit a07fe65031ffa7e8d88898d763bdbc88899fb1e4)

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/src/synaptics.c b/src/synaptics.c
index 6cbdcb8..9997674 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -801,6 +801,7 @@ DeviceOff(DeviceIntPtr dev)
priv-comm.buffer = NULL;
}
xf86CloseSerial(local-fd);
+   local-fd = -1;
 }
 dev-public.on = FALSE;
 return Success;

commit 5c811a864e8927a8dfcf9bc25ffe0265b5ed8025
Author: Adam Jackson a...@redhat.com
Date:   Fri Mar 12 08:32:22 2010 +1000

Don't clobber the timer we just created.

Signed-off-by: Peter Hutterer peter.hutte...@redhat.com
(cherry picked from commit 0fb151b2388ca665b9454b7b284181b4fa180194)

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/src/synaptics.c b/src/synaptics.c
index e9d1833..6cbdcb8 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -615,7 +615,6 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
 xf86ErrorFVerb(6, port opened successfully\n);
 
 /* initialize variables */
-priv-timer = NULL;
 priv-repeatButtons = 0;
 priv-nextRepeat = 0;
 priv-count_packet_finger = 0;

commit faf250d013b1850d3dbe08b050c71dfeb20a6490
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri Dec 11 13:46:50 2009 +1000

synaptics 1.2.1

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index bdc7764..00181bc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-synaptics],
-1.2.0,
+1.2.1,
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 xf86-input-synaptics)
 

commit 537e5206fd270420dd6b5de0bc7fdc5b45ef55f9
Author: Adam Jackson a...@redhat.com
Date:   Thu Dec 10 13:33:37 2009 -0500

Don't destroy the timer on DeviceOff.

DeviceOff is VT switch, DeviceClose is unplug.  We need the timer
pre-allocated since we set it during the signal handler and so can't
allocate it then, so merely cancel it at DeviceOff, and delete it in
DeviceClose.

Signed-off-by: Adam Jackson a...@redhat.com
Reviewed-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Keith Packard kei...@keithp.com
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
(cherry picked from commit babe5288271f3c088d9aac3ffd9f036c87b0018e)

diff --git a/src/synaptics.c b/src/synaptics.c
index e0d3555..e9d1833 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -793,8 +793,7 @@ DeviceOff(DeviceIntPtr dev)
 DBG(3, ErrorF(Synaptics DeviceOff called\n));
 
 if (local-fd != -1) {
-   TimerFree(priv-timer);
-   priv-timer = NULL;
+   TimerCancel(priv-timer);
xf86RemoveEnabledDevice(local);
 if (priv-proto_ops-DeviceOffHook)
 priv-proto_ops-DeviceOffHook(local);
@@ -816,6 +815,8 @@ DeviceClose(DeviceIntPtr dev)
 SynapticsPrivate *priv = (SynapticsPrivate *) local-private;
 
 RetValue = DeviceOff(dev);
+TimerFree(priv-timer);
+priv-timer = NULL;
 free_param_data(priv);
 return RetValue;
 }

commit 8069245fd531b1302e8aa0de82b4c6f66028715f
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Nov 2 09:48:38 2009 +1000

Always make the input buffer size 200

PreInit initalizes the input buffer with 200, DeviceOn only with 64. For
consistency, use the same size in both.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Acked-by: Adam Jackson a...@redhat.com
(cherry picked from commit 0198c02774a5063c5cf45b6eddef4a33d9f494d7)

diff --git a/src/synaptics.c b/src/synaptics.c
index 597aad2..e0d3555 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -111,6 +111,8 

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

2009-11-20 Thread Mattia Dongili
Rebased ref, commits from common ancestor:
commit d109ebbd5ee8f895e29c5fc780dce3cdb7c2f7d3
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu Oct 8 13:41:59 2009 +1000

synaptics 1.2.0

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 44800ea..bdc7764 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-synaptics],
-1.1.99.1,
+1.2.0,
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 xf86-input-synaptics)
 

commit 807a0ecd61ba5fcde57f5e218c790edd58784a56
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue Oct 6 08:06:37 2009 +1000

Require recordproto 1.13 or libXtst 1.1 for record support.

The record.h header used to be in recordproto up to excluding 1.14, then
moved to libXtst. Check for both and enable it dependent on which version we
have.

This avoids build errors on setups where a user updated recordproto but not
libXtst.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Reviewed-by: Xavier Chantry shinin...@gmail.com

diff --git a/configure.ac b/configure.ac
index e9e0560..44800ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -106,7 +106,14 @@ AC_ARG_ENABLE(tools,
   [build_tools=auto])
 
 if test x$build_tools != xno; then
-PKG_CHECK_MODULES(XRECORD, xtst, AC_DEFINE([HAVE_XRECORD],[],[Use 
XRecord]), true)
+# Record.h is either in recordproto up to 1.13.2 or in libXtst 1.1.
+PKG_CHECK_MODULES(XTST_1_1, [xtst = 1.0.99.1], HAVE_LIBXTST=yes, 
HAVE_LIBXTST=no)
+PKG_CHECK_MODULES(RECORDPROTO_1_13, xtst [recordproto  1.13.99.1], 
HAVE_RECORDPROTO=yes, HAVE_RECORDPROTO=no)
+
+if test x$HAVE_LIBXTST = xyes || test x$HAVE_RECORDPROTO = xyes ; 
then
+AC_DEFINE([HAVE_XRECORD],[],[Use XRecord])
+fi
+
 PKG_CHECK_MODULES(XI, x11 [xi = 1.2] [xorg-server = 1.6],
   BUILD_TOOLS=yes; AC_DEFINE(BUILD_TOOLS, 1, Build 
synclient and syndaemon),
   BUILD_TOOLS=no; 
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 35c04a1..65820ff 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -29,7 +29,7 @@ synclient_SOURCES = synclient.c
 synclient_LDFLAGS = -lm $(XI_LIBS)
 
 syndaemon_SOURCES = syndaemon.c
-syndaemon_LDFLAGS = $(XRECORD_LIBS) $(XI_LIBS)
+syndaemon_LDFLAGS = $(XTST_1_1_LIBS) $(RECORDPROTO_1_13_LIBS) $(XI_LIBS)
 else
 all:
@echo Not building syndaemon and synclient.

commit 4422003fafe811a2d2e2fca818dc58f706e67918
Author: Alberto Milone alberto.mil...@canonical.com
Date:   Tue Sep 22 12:46:45 2009 +0200

Correct the type of the Synaptics Area options in the man page

The type of the Synaptics Area options in the man page was incorrectly
set to boolean but it's really integer.

Signed-off-by: Alberto Milone alberto.mil...@canonical.com
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/man/synaptics.man b/man/synaptics.man
index 6febe7f..7c98b6b 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -482,28 +482,28 @@ SHMConfig option and run synclient \-m 1 to see the x/y 
coordinates
 corresponding to different positions on the touchpad.
 .
 .TP
-.BI Option \*qAreaLeftEdge\*q \*q boolean \*q
+.BI Option \*qAreaLeftEdge\*q \*q integer \*q
 Ignore movements, scrolling and tapping which take place left of this edge.
 .
 The option is disabled by default and can be enabled by setting the
 AreaLeftEdge option to any integer value other than zero. Property: Synaptics 
Area
 .
 .TP
-.BI Option \*qAreaRightEdge\*q \*q boolean \*q
+.BI Option \*qAreaRightEdge\*q \*q integer \*q
 Ignore movements, scrolling and tapping which take place right of this edge.
 .
 The option is disabled by default and can be enabled by setting the
 AreaRightEdge option to any integer value other than zero. Property: 
Synaptics Area
 .
 .TP
-.BI Option \*qAreaTopEdge\*q \*q boolean \*q
+.BI Option \*qAreaTopEdge\*q \*q integer \*q
 Ignore movements, scrolling and tapping which take place above this edge.
 .
 The option is disabled by default and can be enabled by setting the
 AreaTopEdge option to any integer value other than zero. Property: Synaptics 
Area
 .
 .TP
-.BI Option \*qAreaBottomEdge\*q \*q boolean \*q
+.BI Option \*qAreaBottomEdge\*q \*q integer \*q
 Ignore movements, scrolling and tapping which take place below this edge.
 .
 The option is disabled by default and can be enabled by setting the

commit 2b27e79d0c6cab73ecb8d00e1dbad32a8150033c
Author: Christoph Brill egore...@egore911.de
Date:   Sat Sep 12 09:52:50 2009 +0200

Revert Add support for reducing the build process output by using shave

This reverts commit 583678b8fe540d9a4120e6c93115b4a141888a2e. Peter
Hutterer informed me that util-macros 1.3.0 already provide the same
functionality when using automake 1.11.

Conflicts:
configure.ac

diff --git 

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

2009-06-06 Thread Mattia Dongili
 configure.ac   |2 +-
 src/eventcomm.c|   45 ++---
 src/synaptics.c|6 +-
 src/synapticsstr.h |3 ++-
 tools/synclient.c  |2 +-
 5 files changed, 39 insertions(+), 19 deletions(-)

New commits:
commit b46ea23ab9f8db40880d294733debbe7a5ebcab7
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Thu May 28 09:46:18 2009 +1000

synaptics 1.1.2

diff --git a/configure.ac b/configure.ac
index 0681873..ef85cb5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-synaptics],
-1.1.1,
+1.1.2,
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 xf86-input-synaptics)
 

commit d4c64483f75af56f0b989798adb28487a76d926f
Author: Jeremy Huddleston jerem...@freedesktop.org
Date:   Thu May 7 18:17:55 2009 +1000

Add model-specific edges for appletouch.

Needs around 8.5% to be useable.

I created a table to iterate through the different products rather than
using if/else branches.  I can enumerate the appletouch product_ids, but I
suspect they will all be around the same range (hence the PRODUCT_ANY).  If
another product id shows different behavior, we can just add an entry to
the table as appropriate.

I also changed the default eheight to be 5.4% to match the spec.

Reported-by: Jeremy Huddleston jerem...@freedesktop.org
Signed-off-by: Jeremy Huddleston jerem...@freedesktop.org
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Signed-off-by: Henrik Rydberg rydb...@euromail.se
(cherry picked from commit c3ab0ae4f3f04da7018173662ede174c97710c8a)

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 690d179..600fa29 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -115,22 +115,37 @@ event_query_is_touchpad(int fd)
 return TRUE;
 }
 
+typedef struct {
+   short vendor;
+   short product;
+   enum TouchpadModel model;
+} model_lookup_t;
+#define PRODUCT_ANY 0x
+
+static model_lookup_t model_lookup_table[] = {
+   {0x0002, 0x0007, MODEL_SYNAPTICS},
+   {0x0002, 0x0008, MODEL_ALPS},
+   {0x05ac, PRODUCT_ANY, MODEL_APPLETOUCH},
+   {0x0, 0x0, 0x0}
+};
+
 static void
 event_query_info(LocalDevicePtr local)
 {
 SynapticsPrivate *priv = (SynapticsPrivate *)local-private;
 short id[4];
 int rc;
+model_lookup_t *model_lookup;
 
 SYSCALL(rc = ioctl(local-fd, EVIOCGID, id));
 if (rc  0)
 return;
 
-if (id[ID_VENDOR] == 0x2  id[ID_PRODUCT] == 0x7)
-priv-model = MODEL_SYNAPTICS;
-else if (id[ID_VENDOR] == 0x2  id[ID_PRODUCT] == 0x8)
-priv-model = MODEL_ALPS;
-
+for(model_lookup = model_lookup_table; model_lookup-vendor; 
model_lookup++) {
+if(model_lookup-vendor == id[ID_VENDOR] 
+   (model_lookup-product == id[ID_PRODUCT] || model_lookup-product 
== PRODUCT_ANY))
+priv-model = model_lookup-model;
+}
 }
 
 /* Query device for axis ranges */
diff --git a/src/synaptics.c b/src/synaptics.c
index 710c786..fdd7790 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -341,10 +341,14 @@ static void set_default_parameters(LocalDevicePtr local)
 {
 ewidth = width * .15;
 eheight = height * .15;
+} else if (priv-model == MODEL_APPLETOUCH)
+{
+ewidth = width * .085;
+eheight = height * .085;
 } else
 {
 ewidth = width * .04;
-eheight = height * .04;
+eheight = height * .054;
 }
 
 l = priv-minx + ewidth;
diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index f518c11..d5a3f91 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -82,7 +82,8 @@ enum TapButtonState {
 enum TouchpadModel {
 MODEL_UNKNOWN = 0,
 MODEL_SYNAPTICS,
-MODEL_ALPS
+MODEL_ALPS,
+MODEL_APPLETOUCH
 };
 
 typedef struct _SynapticsPrivateRec

commit 3b2c023ca64c20203973fc3e606ab91dfc65c16f
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue May 19 08:43:57 2009 +1000

synaptics 1.1.1

diff --git a/configure.ac b/configure.ac
index edbcc05..0681873 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-synaptics],
-1.1.0,
+1.1.1,
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 xf86-input-synaptics)
 

commit 553106362973f4938e0a03a4178c97b0ce0ff0f1
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue May 19 08:43:29 2009 +1000

synclient: up max value for AccelFactor to 1.0

There's no real reason to restrict AccelFactor to 0.2, the driver itself
doesn't restrict AccelFactor either. Upwards of 1.0 it's hard to spot any
real differences in speed though, so 1.0 seems like a sensible maximum.

Red Hat Bug 462574 https://bugzilla.redhat.com/show_bug.cgi?id=462574

Reported-by: David Woodhouse 

Re: uploading xserver-xorg-input-synaptics [was Re: xserver-xorg-input-synaptics: Changes to 'upstream']

2009-05-12 Thread Mattia Dongili
On Mon, May 11, 2009 at 09:26:23AM -0400, David Nusinow wrote:
 Mattia Dongili wrote:
  On Mon, May 11, 2009 at 10:04:49AM +0200, Julien Cristau wrote:
...
  xserver-xorg-input-synaptics (1.1.1~git20090510-1) unreleased; urgency=low
 
[ David Nusinow ]
* Add NEWS.Debian entry about enabling tapping again (closes: #497523)
  I think it'd be nice if the NEWS entry explained how to do this with
  synclient rather than xorg.conf / hal.
  
  The disadvantage with synclient is that the configuration is not
  persistent.
  
  The xorg.conf way probably needs things like a ServerLayout section, and
  I'm not sure how well it'll keep working.  And fdi is not quite a nice
  config file format.  Or we could point at gpointing-device-settings,
  since that has been accepted in the archive now.
  
  How about showing the synclient command line and pointing at the
  existing documentation for how to configure hal/xorg.conf?
  Something along the lines of:
  
* Tapping has been disabled by default on many touchpads by upstream.
  If you want to re-enable it, you can do so from within the X
  environment by running the following commands in a terminal:
  
  $ synclient TapButton1=1
  $ synclient TapButton2=2
  $ synclient TapButton3=3
  
  Note that the configuration will not be permanently modified, to do
  so please read the documentation about how to set up your xorg.conf
  file in the synaptics(4) manpage or in
  /usr/share/doc/xserver-xorg-input-synaptics.
  Another alternative is to use desktop environment specific tools
  like gpointing-device-settings or touchfreeze.
  
  Thoughts?
  
 
 This sounds good to me, although it might be a good idea to write either
 a section in the manpage devoted to setting this up and pointing users
 to that section in the NEWS file (e.g. Please see the section Tapping
 in your xorg.conf) so that users don't have to crawl through the entire
 manpage for what's very likely going to be a common thing.

Hmmm, I'm unsure about how appropriate it would be to have a section
just for tapping.
Pointing to the NOTES section should be good though. I'll add a few
words about tapping being disabled by default and the TapButton* options
being the ones to look for.

How's this?
Index: xserver-xorg-input-synaptics/man/synaptics.man
===
--- xserver-xorg-input-synaptics.orig/man/synaptics.man 2009-05-13 
00:14:36.753651106 +0900
+++ xserver-xorg-input-synaptics/man/synaptics.man  2009-05-13 
00:27:28.785651827 +0900
@@ -813,6 +813,9 @@
 vertical scrolling is enabled, horizontal two-finger scrolling is disabled and
 edge scrolling is disabled. If no multi-finger capabilities are reported,
 edge scrolling is enabled for both horizontal and vertical scrolling.
+Tapping is disabled by default for touchpads with two buttons or more, to 
enable
+it you need to map tap actions to buttons. See the TapButton1, TapButton2
+and TapButton3 option descriptions for their meaning.
 .LP
 Button mapping for physical buttons is handled in the server.
 If the device is switched to left-handed (an in-server mapping of physical

and this:

xserver-xorg-input-synaptics (1.1.1~git20090510-1) unstable; urgency=low

  * Tapping has been disabled by default on many touchpads by upstream, see
the NOTES section in the synaptics(4) manpage for a short overview
about how defaults are calculated.
If you want to re-enable it, you can do so from within the X
environment by running the following commands in a terminal:

$ synclient TapButton1=1
$ synclient TapButton2=2
$ synclient TapButton3=3

Note that the configuration will not be permanently modified, to do
so assign the above option values in your xorg.conf or custom fdi file
(see the synaptics(4) manpage or the documents in
/usr/share/doc/xserver-xorg-input-synaptics for additional details).
Another alternative is to use desktop environment specific tools
like gpointing-device-settings or touchfreeze.

 -- David Nusinow dnusi...@debian.org  Sat, 11 Apr 2009 16:23:11 -0400
-- 
mattia
:wq!


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: uploading xserver-xorg-input-synaptics [was Re: xserver-xorg-input-synaptics: Changes to 'upstream']

2009-05-12 Thread David Nusinow

Mattia Dongili wrote:

On Mon, May 11, 2009 at 09:26:23AM -0400, David Nusinow wrote:
  

Mattia Dongili wrote:


On Mon, May 11, 2009 at 10:04:49AM +0200, Julien Cristau wrote:
  

...
  

xserver-xorg-input-synaptics (1.1.1~git20090510-1) unreleased; urgency=low

  [ David Nusinow ]
  * Add NEWS.Debian entry about enabling tapping again (closes: #497523)
  

I think it'd be nice if the NEWS entry explained how to do this with
synclient rather than xorg.conf / hal.


The disadvantage with synclient is that the configuration is not
persistent.

  

The xorg.conf way probably needs things like a ServerLayout section, and
I'm not sure how well it'll keep working.  And fdi is not quite a nice
config file format.  Or we could point at gpointing-device-settings,
since that has been accepted in the archive now.


How about showing the synclient command line and pointing at the
existing documentation for how to configure hal/xorg.conf?
Something along the lines of:

  * Tapping has been disabled by default on many touchpads by upstream.
If you want to re-enable it, you can do so from within the X
environment by running the following commands in a terminal:

$ synclient TapButton1=1
$ synclient TapButton2=2
$ synclient TapButton3=3

Note that the configuration will not be permanently modified, to do
so please read the documentation about how to set up your xorg.conf
file in the synaptics(4) manpage or in
/usr/share/doc/xserver-xorg-input-synaptics.
Another alternative is to use desktop environment specific tools
like gpointing-device-settings or touchfreeze.

Thoughts?

  

This sounds good to me, although it might be a good idea to write either
a section in the manpage devoted to setting this up and pointing users
to that section in the NEWS file (e.g. Please see the section Tapping
in your xorg.conf) so that users don't have to crawl through the entire
manpage for what's very likely going to be a common thing.



Hmmm, I'm unsure about how appropriate it would be to have a section
just for tapping.
Pointing to the NOTES section should be good though. I'll add a few
words about tapping being disabled by default and the TapButton* options
being the ones to look for.

How's this?
Index: xserver-xorg-input-synaptics/man/synaptics.man
===
--- xserver-xorg-input-synaptics.orig/man/synaptics.man 2009-05-13 
00:14:36.753651106 +0900
+++ xserver-xorg-input-synaptics/man/synaptics.man  2009-05-13 
00:27:28.785651827 +0900
@@ -813,6 +813,9 @@
 vertical scrolling is enabled, horizontal two-finger scrolling is disabled and
 edge scrolling is disabled. If no multi-finger capabilities are reported,
 edge scrolling is enabled for both horizontal and vertical scrolling.
+Tapping is disabled by default for touchpads with two buttons or more, to 
enable
+it you need to map tap actions to buttons. See the TapButton1, TapButton2
+and TapButton3 option descriptions for their meaning.
 .LP
 Button mapping for physical buttons is handled in the server.
 If the device is switched to left-handed (an in-server mapping of physical

and this:

xserver-xorg-input-synaptics (1.1.1~git20090510-1) unstable; urgency=low

  * Tapping has been disabled by default on many touchpads by upstream, see
the NOTES section in the synaptics(4) manpage for a short overview
about how defaults are calculated.
If you want to re-enable it, you can do so from within the X
environment by running the following commands in a terminal:

$ synclient TapButton1=1
$ synclient TapButton2=2
$ synclient TapButton3=3

Note that the configuration will not be permanently modified, to do
so assign the above option values in your xorg.conf or custom fdi file
(see the synaptics(4) manpage or the documents in
/usr/share/doc/xserver-xorg-input-synaptics for additional details).
Another alternative is to use desktop environment specific tools
like gpointing-device-settings or touchfreeze.

 -- David Nusinow dnusi...@debian.org  Sat, 11 Apr 2009 16:23:11 -0400
  


Looks good to me.

- David Nusinow


--
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: uploading xserver-xorg-input-synaptics [was Re: xserver-xorg-input-synaptics: Changes to 'upstream']

2009-05-11 Thread Julien Cristau
On Mon, May 11, 2009 at 08:08:43 +0900, Mattia Dongili wrote:

 Later tonight (JST), if nobody objects, I'd like to upload a new
 xserver-xorg-input-synaptics based on the current upstream code of the
 1.1 branch.

Sounds good!

 xserver-xorg-input-synaptics (1.1.1~git20090510-1) unreleased; urgency=low
 
   [ David Nusinow ]
   * Add NEWS.Debian entry about enabling tapping again (closes: #497523)

I think it'd be nice if the NEWS entry explained how to do this with
synclient rather than xorg.conf / hal.
The xorg.conf way probably needs things like a ServerLayout section, and
I'm not sure how well it'll keep working.  And fdi is not quite a nice
config file format.  Or we could point at gpointing-device-settings,
since that has been accepted in the archive now.

Cheers,
Julien


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: uploading xserver-xorg-input-synaptics [was Re: xserver-xorg-input-synaptics: Changes to 'upstream']

2009-05-11 Thread Mattia Dongili
On Mon, May 11, 2009 at 10:04:49AM +0200, Julien Cristau wrote:
 On Mon, May 11, 2009 at 08:08:43 +0900, Mattia Dongili wrote:
 
  Later tonight (JST), if nobody objects, I'd like to upload a new
  xserver-xorg-input-synaptics based on the current upstream code of the
  1.1 branch.
 
 Sounds good!

Excellent, let's figure out a good wording for the NEWS file and I'll
upload it.

  xserver-xorg-input-synaptics (1.1.1~git20090510-1) unreleased; urgency=low
  
[ David Nusinow ]
* Add NEWS.Debian entry about enabling tapping again (closes: #497523)
 
 I think it'd be nice if the NEWS entry explained how to do this with
 synclient rather than xorg.conf / hal.

The disadvantage with synclient is that the configuration is not
persistent.

 The xorg.conf way probably needs things like a ServerLayout section, and
 I'm not sure how well it'll keep working.  And fdi is not quite a nice
 config file format.  Or we could point at gpointing-device-settings,
 since that has been accepted in the archive now.

How about showing the synclient command line and pointing at the
existing documentation for how to configure hal/xorg.conf?
Something along the lines of:

  * Tapping has been disabled by default on many touchpads by upstream.
If you want to re-enable it, you can do so from within the X
environment by running the following commands in a terminal:

$ synclient TapButton1=1
$ synclient TapButton2=2
$ synclient TapButton3=3

Note that the configuration will not be permanently modified, to do
so please read the documentation about how to set up your xorg.conf
file in the synaptics(4) manpage or in
/usr/share/doc/xserver-xorg-input-synaptics.
Another alternative is to use desktop environment specific tools
like gpointing-device-settings or touchfreeze.

Thoughts?

I'd even go one step further and start Suggest-ing those 2 packages in
this upload.

PS: I just took a minute to re-read the docs provided in the package and
actually I have to say that there is really no need to provide another
fdi example, README.Debian points to
/usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi which
already contains plenty of examples (might add the TapButton* options
eventually).
-- 
mattia
:wq!


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: uploading xserver-xorg-input-synaptics [was Re: xserver-xorg-input-synaptics: Changes to 'upstream']

2009-05-11 Thread David Nusinow
Mattia Dongili wrote:
 On Mon, May 11, 2009 at 10:04:49AM +0200, Julien Cristau wrote:
 On Mon, May 11, 2009 at 08:08:43 +0900, Mattia Dongili wrote:

 Later tonight (JST), if nobody objects, I'd like to upload a new
 xserver-xorg-input-synaptics based on the current upstream code of the
 1.1 branch.
 Sounds good!

ACK.

 
 Excellent, let's figure out a good wording for the NEWS file and I'll
 upload it.

Yeah, I wrote the NEWS entry in order to give users some sort of
documentation, but since I don't use synaptics myself it's definitely a
suboptimal entry.

 xserver-xorg-input-synaptics (1.1.1~git20090510-1) unreleased; urgency=low

   [ David Nusinow ]
   * Add NEWS.Debian entry about enabling tapping again (closes: #497523)
 I think it'd be nice if the NEWS entry explained how to do this with
 synclient rather than xorg.conf / hal.
 
 The disadvantage with synclient is that the configuration is not
 persistent.
 
 The xorg.conf way probably needs things like a ServerLayout section, and
 I'm not sure how well it'll keep working.  And fdi is not quite a nice
 config file format.  Or we could point at gpointing-device-settings,
 since that has been accepted in the archive now.
 
 How about showing the synclient command line and pointing at the
 existing documentation for how to configure hal/xorg.conf?
 Something along the lines of:
 
   * Tapping has been disabled by default on many touchpads by upstream.
 If you want to re-enable it, you can do so from within the X
 environment by running the following commands in a terminal:
 
   $ synclient TapButton1=1
   $ synclient TapButton2=2
   $ synclient TapButton3=3
 
 Note that the configuration will not be permanently modified, to do
 so please read the documentation about how to set up your xorg.conf
 file in the synaptics(4) manpage or in
 /usr/share/doc/xserver-xorg-input-synaptics.
 Another alternative is to use desktop environment specific tools
 like gpointing-device-settings or touchfreeze.
 
 Thoughts?
 

This sounds good to me, although it might be a good idea to write either
a section in the manpage devoted to setting this up and pointing users
to that section in the NEWS file (e.g. Please see the section Tapping
in your xorg.conf) so that users don't have to crawl through the entire
manpage for what's very likely going to be a common thing.

Another option is a separate document slipped in to
/usr/share/doc/xserver-xorg-input-synaptics, but I think a manpage
section that can be pushed upstream would be better.

 - David Nusinow


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-05-10 Thread Mattia Dongili
 configure.ac   |7 +++
 man/synaptics.man  |6 ++
 src/eventcomm.c|   21 -
 src/ps2comm.c  |7 +--
 src/synaptics.c|   43 +++
 src/synapticsstr.h |8 
 tools/synclient.c  |   46 +-
 tools/syndaemon.c  |   12 +++-
 8 files changed, 129 insertions(+), 21 deletions(-)

New commits:
commit 881f85578ab4a7c02375bcfc10026ad1a0800cdb
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Tue May 5 11:02:20 2009 +1000

If QueryHardware failed, return that failure and clean up.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Signed-off-by: Christoph Brill egore...@egore911.de
Signed-off-by: Henrik Rydberg rydb...@euromail.se
(cherry picked from commit a9a443959585e7f65ba3f300d387cf617d9df77b)

Conflicts:

src/synaptics.c

diff --git a/src/synaptics.c b/src/synaptics.c
index 9b89595..710c786 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -729,7 +729,15 @@ DeviceOn(DeviceIntPtr dev)
 xf86FlushInput(local-fd);
 
 /* reinit the pad */
-QueryHardware(local);
+if (!QueryHardware(local))
+{
+XisbFree(priv-comm.buffer);
+priv-comm.buffer = NULL;
+xf86CloseSerial(local-fd);
+local-fd = -1;
+return !Success;
+}
+
 xf86AddEnabledDevice(local);
 dev-public.on = TRUE;
 
@@ -2204,6 +2212,7 @@ QueryHardware(LocalDevicePtr local)
 } else {
xf86Msg(X_PROBED, %s: no supported touchpad found\n, local-name);
priv-proto_ops-DeviceOffHook(local);
+   return FALSE;
 }
 
 return TRUE;

commit 2b3325dc53d1a560b94b9c88aeb05b0f7f9085cd
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Fri May 1 13:37:44 2009 +1000

Add TouchpadModel specifier and scale the edges accordingly. (#21214)

ALPS models need different edge settings than synaptics pads to make the 
edges
work propertly. So try to auto-detect the model (eventcomm anyway) and set 
the
edges accordingly.

New edge defaults are:
 synaptics: 7% of the total width
 alps: 15% of the total width
 unknown: 4% of the total width (see Synaptics UI guide)

X.Org Bug 21214 http://bugs.freedesktop.org/show_bug.cgi?id=21214

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
Signed-off-by: Christoph Brill egore...@egore911.de
Signed-off-by: Henrik Rydberg rydb...@euromail.se
(cherry-picked from commit c50dba0b04f2115a5d23ed4a785c101f9b26900b)

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 3e4c074..3b03695 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -115,6 +115,24 @@ event_query_is_touchpad(int fd)
 return TRUE;
 }
 
+static void
+event_query_info(LocalDevicePtr local)
+{
+SynapticsPrivate *priv = (SynapticsPrivate *)local-private;
+short id[4];
+int rc;
+
+SYSCALL(rc = ioctl(local-fd, EVIOCGID, id));
+if (rc  0)
+return;
+
+if (id[ID_VENDOR] == 0x2  id[ID_PRODUCT] == 0x7)
+priv-model = MODEL_SYNAPTICS;
+else if (id[ID_VENDOR] == 0x2  id[ID_PRODUCT] == 0x8)
+priv-model = MODEL_ALPS;
+
+}
+
 /* Query device for axis ranges */
 static void
 event_query_axis_ranges(LocalDevicePtr local)
@@ -360,6 +378,7 @@ EventReadDevDimensions(LocalDevicePtr local)
 {
 if (event_query_is_touchpad(local-fd))
event_query_axis_ranges(local);
+event_query_info(local);
 }
 
 static Bool
diff --git a/src/synaptics.c b/src/synaptics.c
index 6b98e6e..9b89595 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -318,7 +318,10 @@ static void set_default_parameters(LocalDevicePtr local)
 /* The synaptics specs specify typical edge widths of 4% on x, and 5.4% on
  * y (page 7) [Synaptics TouchPad Interfacing Guide, 510-80 - A
  * Second Edition, http://www.synaptics.com/support/dev_support.cfm, 8 Sep
- * 2008]
+ * 2008]. We use 7% for both instead for synaptics devices, and 15% for
+ * ALPS models.
+ * http://bugs.freedesktop.org/show_bug.cgi?id=21214
+ *
  * If the range was autodetected, apply these edge widths to all four
  * sides.
  */
@@ -330,8 +333,19 @@ static void set_default_parameters(LocalDevicePtr local)
 width = abs(priv-maxx - priv-minx);
 height = abs(priv-maxy - priv-miny);
 diag = sqrt(width * width + height * height);
-ewidth = width * .04;
-eheight = height * .055;
+if (priv-model == MODEL_SYNAPTICS)
+{
+ewidth = width * .07;
+eheight = height * .07;
+} else if (priv-model == MODEL_ALPS)
+{
+ewidth = width * .15;
+eheight = height * .15;
+} else
+{
+ewidth = width * .04;
+eheight = height * .04;
+}
 
 l = priv-minx + ewidth;
 r = priv-maxx - ewidth;
diff --git a/src/synapticsstr.h 

uploading xserver-xorg-input-synaptics [was Re: xserver-xorg-input-synaptics: Changes to 'upstream']

2009-05-10 Thread Mattia Dongili
On Sun, May 10, 2009 at 02:45:48PM +, Mattia Dongili wrote:
  configure.ac   |7 +++
  man/synaptics.man  |6 ++
  src/eventcomm.c|   21 -
  src/ps2comm.c  |7 +--
  src/synaptics.c|   43 +++
  src/synapticsstr.h |8 
  tools/synclient.c  |   46 +-
  tools/syndaemon.c  |   12 +++-
  8 files changed, 129 insertions(+), 21 deletions(-)


Later tonight (JST), if nobody objects, I'd like to upload a new
xserver-xorg-input-synaptics based on the current upstream code of the
1.1 branch.
I seem to have lost the debian-unstable branch push email which I wanted
to quote, so here's the changelog for the changes that will be uploaded:

xserver-xorg-input-synaptics (1.1.1~git20090510-1) unreleased; urgency=low

  [ David Nusinow ]
  * Add NEWS.Debian entry about enabling tapping again (closes: #497523)

  [ Mattia Dongili ]
  * Link to xserver-xorg reportbug script
  * Merge current upstream fixes:
- Edge calculation fixes bring back vertical scrolling (closes: #523946)
- Fix float properties handling on 64bit arches (closes: #525473)
  * Remove Suggests for [kq]synaptics which are not in the repository anymore
(closes: #498299)
  * Remove the upstream NEWS file which doesn't exist anymore

  [ Alexandre Rossi ]
  * Provide Hal configurations for re-enabling tapping and scrolling

 -- Mattia Dongili malat...@debian.org  Sun, 10 May 2009 13:43:58 +0900
-- 
mattia
:wq!


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-04-08 Thread Julien Cristau
 .gitignore |1 
 INSTALL|2 
 Makefile.am|4 
 configure.ac   |   31 -
 fdi/11-x11-synaptics.fdi   |   31 +
 include/Makefile.am|2 
 include/synaptics-properties.h |   11 
 include/synaptics.h|2 
 man/synaptics.man  |  359 +
 man/synclient.man  |   23 -
 man/syndaemon.man  |   16 
 src/alpscomm.c |4 
 src/eventcomm.c|  138 +---
 src/properties.c   |  227 -
 src/ps2comm.c  |4 
 src/psmcomm.c  |4 
 src/psmcomm.h  |2 
 src/synaptics.c|  498 +++---
 src/synapticsstr.h |   13 
 src/synproto.h |1 
 tools/Makefile.am  |4 
 tools/synclient.c  |  677 -
 tools/syndaemon.c  |  416 +
 xorg-synaptics.pc.in   |6 
 24 files changed, 1847 insertions(+), 629 deletions(-)

New commits:
commit 82de65f8304ba896e17ce16099632d367a2a596f
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Mar 9 11:47:06 2009 +1000

synaptics 1.1.0

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/configure.ac b/configure.ac
index 2131f47..df11400 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-synaptics],
-1.0.99.4,
+1.1.0,
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
 xf86-input-synaptics)
 

commit a0a0475b39a1abb67bfcc34723a222799132a33d
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Mar 9 11:38:00 2009 +1000

man: remove some pointless ( and ) around float options.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/man/synaptics.man b/man/synaptics.man
index fd6a4be..b18fb8d 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -199,14 +199,14 @@ Motion Always
 .BI Option \*qMinSpeed\*q \*q float \*q
 Minimum speed factor. Property: Synaptics Move Speed
 .TP
-.BI Option \*qMaxSpeed\fR (\*q \*q float \*q)
+.BI Option \*qMaxSpeed\*q \*q float \*q
 Maximum speed factor. Property: Synaptics Move Speed
 .TP
-.BI Option \*qAccelFactor\fR (\*q \*q float \*q)
+.BI Option \*qAccelFactor\*q \*q float \*q
 Acceleration factor for normal pointer movements. Property: Synaptics Move
 Speed
 .TP
-.BI Option \*qTrackstickSpeed\fR (\*q \*q float \*q)
+.BI Option \*qTrackstickSpeed\*q \*q float \*q
 Speed scale when in trackstick emulation mode. Property: Synaptics Move Speed
 .TP
 .BI Option \*qPressureMotionMinZ\*q \*q integer \*q
@@ -348,7 +348,7 @@ Set to 0 to disable. Property: Synaptics Click Action
 .BI Option \*qCircularScrolling\*q \*q boolean \*q
 If on, circular scrolling is used. Property: Synaptics Circular Scrolling
 .TP
-.BI Option \*qCircScrollDelta\fR (\*q \*q float \*q)
+.BI Option \*qCircScrollDelta\*q \*q float \*q
 Move angle (radians) of finger to generate a scroll event. Property: Synaptics
 Circular Scrolling Distance
 .TP
@@ -389,7 +389,7 @@ Palm Dimensions
 Minimum finger pressure at which touch is considered a palm. Property:
 Synaptics Palm Dimensions
 .TP
-.BI Option \*qCoastingSpeed\fR (\*q \*q float \*q)
+.BI Option \*qCoastingSpeed\*q \*q float \*q
 Coasting threshold scrolling speed.
 .
 0 disables coasting. Property: Synaptics Coasting Speed

commit 5acb71723a7fe837f7312adb5b8320dda87649f2
Author: Peter Hutterer peter.hutte...@who-t.net
Date:   Mon Mar 9 11:28:02 2009 +1000

man: device properties are now supported, should be stated as such.

This includes listing supported properties and de-emphasizing the need for
SHM.

Signed-off-by: Peter Hutterer peter.hutte...@who-t.net

diff --git a/man/synaptics.man b/man/synaptics.man
index a6f9e95..fd6a4be 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -68,9 +68,6 @@ taps for example.)
 Please refer to __xconfigfile__(__filemansuffix__) for general configuration
 details and for options that can be used with all input drivers.  This
 section only covers configuration details specific to this driver.
-.
-If you have the SHMConfig parameter enabled, these parameters can also
-be changed at runtime with the synclient(1) program.
 .PP
 The following driver
 .B Options
@@ -93,23 +90,24 @@ psm FreeBSD psm driver
 .TE
 .TP 7
 .BI Option \*qSHMConfig\*q \*q boolean \*q
-Switch on/off shared memory for configuration. This enables the driver to be
-configured at runtime. Note that this is considered a security risk since any
-user can access the configuration.
+Switch on/off shared memory for run-time configuration. Note that this is
+considered a security risk since any user can access the configuration. This
+option is not needed with synaptics 1.0 or later. See section
+.B Device 

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

2008-08-24 Thread Mattia Dongili
 .gitignore   |   25 
 COMPATIBILITY|  309 --
 COPYING  |   37 
 ChangeLog|   21 
 FILES|   13 
 INSTALL  |   56 
 INSTALL.DE   |  103 
 INSTALL.FR   |  105 
 LICENSE  |  280 --
 Makefile |  180 -
 Makefile.am  |   22 
 NEWS |9 
 README   |  104 
 README.alps  |   77 
 TODO |1 
 Xincludes/README.xincludes   |1 
 Xincludes/usr/X11R6/include/X11/Xalloca.h|  138 -
 Xincludes/usr/X11R6/include/X11/Xdefs.h  |  110 -
 Xincludes/usr/X11R6/include/X11/Xfuncproto.h |   80 
 Xincludes/usr/X11R6/include/X11/Xfuncs.h |   92 
 Xincludes/usr/X11R6/include/X11/extensions/XI.h  |  275 --
 Xincludes/usr/X11R6/include/X11/extensions/XIproto.h | 1530 --
 Xincludes/usr/X11R6/lib/Server/include/XIstubs.h |  101 
 Xincludes/usr/X11R6/lib/Server/include/bstore.h  |   23 
 Xincludes/usr/X11R6/lib/Server/include/bstorestr.h   |   75 
 Xincludes/usr/X11R6/lib/Server/include/colormap.h|  235 --
 Xincludes/usr/X11R6/lib/Server/include/cursor.h  |  156 -
 Xincludes/usr/X11R6/lib/Server/include/dix.h | 1096 --
 Xincludes/usr/X11R6/lib/Server/include/dixstruct.h   |  267 --
 Xincludes/usr/X11R6/lib/Server/include/gc.h  |  232 --
 Xincludes/usr/X11R6/lib/Server/include/globals.h |   52 
 Xincludes/usr/X11R6/lib/Server/include/input.h   |  535 
 Xincludes/usr/X11R6/lib/Server/include/inputstr.h|  317 --
 Xincludes/usr/X11R6/lib/Server/include/mipointer.h   |  162 -
 Xincludes/usr/X11R6/lib/Server/include/misc.h|  282 --
 Xincludes/usr/X11R6/lib/Server/include/miscstruct.h  |   73 
 Xincludes/usr/X11R6/lib/Server/include/opaque.h  |   81 
 Xincludes/usr/X11R6/lib/Server/include/os.h  |  856 ---
 Xincludes/usr/X11R6/lib/Server/include/pixmap.h  |  123 -
 Xincludes/usr/X11R6/lib/Server/include/pixmapstr.h   |   83 
 Xincludes/usr/X11R6/lib/Server/include/property.h|   83 
 Xincludes/usr/X11R6/lib/Server/include/propertyst.h  |   76 
 Xincludes/usr/X11R6/lib/Server/include/region.h  |   53 
 Xincludes/usr/X11R6/lib/Server/include/regionstr.h   |  437 
 Xincludes/usr/X11R6/lib/Server/include/resource.h|  326 ---
 Xincludes/usr/X11R6/lib/Server/include/screenint.h   |  170 -
 Xincludes/usr/X11R6/lib/Server/include/scrnintstr.h  |  996 -
 Xincludes/usr/X11R6/lib/Server/include/validate.h|   42 
 Xincludes/usr/X11R6/lib/Server/include/window.h  |  362 ---
 Xincludes/usr/X11R6/lib/Server/include/xf86.h|  389 ---
 Xincludes/usr/X11R6/lib/Server/include/xf86Module.h  |  197 -
 Xincludes/usr/X11R6/lib/Server/include/xf86Opt.h |   82 
 Xincludes/usr/X11R6/lib/Server/include/xf86Version.h |   31 
 Xincludes/usr/X11R6/lib/Server/include/xf86Xinput.h  |  191 -
 Xincludes/usr/X11R6/lib/Server/include/xf86_OSproc.h |  266 --
 Xincludes/usr/X11R6/lib/Server/include/xf86_ansic.h  |  342 ---
 Xincludes/usr/X11R6/lib/Server/include/xf86_libc.h   |  658 --
 Xincludes/usr/X11R6/lib/Server/include/xf86str.h |  994 -
 Xincludes/usr/X11R6/lib/Server/include/xisb.h|   64 
 Xincludes/usr/X11R6/lib64|1 
 alps.patch   |  561 -
 alpscomm.c   |  253 --
 alpscomm.h   |   27 
 autogen.sh   |   12 
 configure.ac |  125 +
 docs/README.alps |   77 
 docs/trouble-shooting.txt|  152 +
 eventcomm.c  |  318 --
 eventcomm.h  |   28 
 fdi/11-x11-synaptics.fdi |   16 
 fdi/Makefile.am  |   21 
 freebsd_mouse.h  |   55 
 include/Makefile.am  |   21 
 include/synaptics-properties.h   |  142 +
 include/synaptics.h  |  155 +
 linux_input.h|   82 
 man/Makefile.am  |   68 
 man/synaptics.man|  614 +
 man/synclient.man 

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

2007-09-17 Thread Mattia Dongili
 FILES|2 -
 INSTALL  |   40 +---
 README.alps  |   20 ++--
 alpscomm.c   |2 -
 eventcomm.c  |2 -
 manpages/synaptics.5 |   42 +++---
 synaptics.c  |   63 +--
 synaptics.h  |1 
 synclient.c  |   13 +-
 9 files changed, 131 insertions(+), 54 deletions(-)

New commits:
commit cd6a1225ec319cad9788e8fba158d9792b55de23
Author: Joseph P. Skudlarek [EMAIL PROTECTED](none)
Date:   Fri Jul 6 15:39:53 2007 +0200

Implement corner coasting.

diff --git a/INSTALL b/INSTALL
index 91b6b67..900b8c5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -65,6 +65,8 @@ Section InputDevice
   Option   MaxTapTime180
   Option   MaxTapMove220
   Option   VertScrollDelta   100
+  Option   CornerCoasting1
+  Option   CoastingSpeed 3
   Option   MinSpeed  0.09
   Option   MaxSpeed  0.18
   Option   AccelFactor   0.0015
diff --git a/README.alps b/README.alps
index 206696f..d89b38b 100644
--- a/README.alps
+++ b/README.alps
@@ -30,6 +30,8 @@ Section InputDevice
   Option   EmulateMidButtonTime  75
   Option   VertScrollDelta   20
   Option   HorizScrollDelta  20
+  Option   CornerCoasting1
+  Option   CoastingSpeed 3
   Option   MinSpeed  0.3
   Option   MaxSpeed  0.75
   Option   AccelFactor   0.015
diff --git a/manpages/synaptics.5 b/manpages/synaptics.5
index 14be846..6e99bd0 100644
--- a/manpages/synaptics.5
+++ b/manpages/synaptics.5
@@ -134,6 +134,9 @@ Enable vertical scrolling when dragging along the right 
edge.
 \fBHorizEdgeScroll\fR (Bool)
 Enable horizontal scrolling when dragging along the bottom edge.
 .TP
+\fBCornerCoasting\fR (Bool)
+Enable edge scrolling to continue while the finger stays in an edge corner.
+.TP
 \fBVertTwoFingerScroll\fR (Bool)
 Enable vertical scrolling when dragging with two fingers anywhere on
 the touchpad.
@@ -524,9 +527,15 @@ scrolling.
 Coasting is enabled by setting the CoastingSpeed parameter to a
 non-zero value.
 .
-When coasting is enabled, horizontal/vertical scrolling can continue
-after the finger is released from the lower/right edge of the
-touchpad.
+Coasting comes in two flavors: conventional (finger off) coasting, and
+corner (finger on) coasting.
+.LP
+Conventional coasting is enabled when coasting is enabled,
+and CornerCoasting is set to false.
+.
+When conventional coasting is enabled, horizontal/vertical scrolling
+can continue after the finger is released from the lower/right edge of
+the touchpad.
 .
 The driver computes the scrolling speed corresponding to the finger
 speed immediately before the finger leaves the touchpad.
@@ -537,6 +546,21 @@ with the same speed in the same direction until the finger 
touches the
 touchpad again.
 .
 .LP
+Corner coasting is enabled when coasting is enabled, and
+CornerCoasting is set to true.
+.
+When corner coasting is enabled, edge scrolling can continue as long
+as the finger stays in a corner.
+.
+Coasting begins when the finger enters the corner, and continues until
+the finger leaves the corner.
+.
+CornerCoasting takes precedence over the seamless switch from edge
+scrolling to circular scrolling.  That is, if CornerCoasting is
+active, scrolling will stop, and circular scrolling will not start,
+when the finger leaves the corner.
+.
+.LP
 Trackstick emulation mode is entered when pressing the finger hard on
 the touchpad.
 .
diff --git a/synaptics.c b/synaptics.c
index d65dbd1..802132c 100644
--- a/synaptics.c
+++ b/synaptics.c
@@ -1,4 +1,7 @@
 /*
+ *   Copyright 2007 Joseph P. Skudlarek [EMAIL PROTECTED]
+ * patch for corner coasting (originally called corner edge scrolling)
+ *
  *   Copyright 2006 Christian Thaeter [EMAIL PROTECTED]
  * patch for Trackstick mode
  *
@@ -428,6 +431,7 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
 pars-emulate_twofinger_z = xf86SetIntOption(opts, EmulateTwoFingerMinZ, 
257);
 pars-scroll_edge_vert = xf86SetBoolOption(opts, VertEdgeScroll, TRUE);
 pars-scroll_edge_horiz = xf86SetBoolOption(opts, HorizEdgeScroll, TRUE);
+pars-scroll_edge_corner = xf86SetBoolOption(opts, CornerCoasting, 
FALSE);
 pars-scroll_twofinger_vert = xf86SetBoolOption(opts, 
VertTwoFingerScroll, FALSE);
 pars-scroll_twofinger_horiz = xf86SetBoolOption(opts, 
HorizTwoFingerScroll, FALSE);
 pars-edge_motion_min_z = xf86SetIntOption(opts, EdgeMotionMinZ, 30);
@@ -1465,6 +1469,14 @@ start_coasting(SynapticsPrivate *priv, struct 
SynapticsHwState *hw, edge_type ed
 priv-scroll_packet_count = 0;
 }
 
+static void
+stop_coasting(SynapticsPrivate *priv)
+{
+priv-autoscroll_xspd = 0;
+priv-autoscroll_yspd = 0;
+priv-scroll_packet_count = 0;
+}
+
 static int
 

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

2007-05-19 Thread Mattia Dongili
 COMPATIBILITY|6 
 docs/tapndrag.dia|  318 ---
 eventcomm.c  |   28 
 linux_input.h|   11 +
 manpages/synaptics.5 |8 +
 synaptics.c  |   77 ++--
 synaptics.h  |6 
 synclient.c  |1 
 8 files changed, 369 insertions(+), 86 deletions(-)

New commits:
commit e7f641b8c6d09b11dd5c93086bbc5a0b135296ea
Author: Peter Osterlund [EMAIL PROTECTED]
Date:   Thu May 17 13:31:05 2007 +0200

Document the LockedDragTimeout parameter.

diff --git a/manpages/synaptics.5 b/manpages/synaptics.5
index 4954402..0304cf3 100644
--- a/manpages/synaptics.5
+++ b/manpages/synaptics.5
@@ -239,7 +239,13 @@ Switch on/off guest mouse (often a stick).
 \fBLockedDrags\fR (Bool)
 If off, a tap and drag gesture ends when you release the finger.
 .
-If on, the gesture is active until you tap a second time.
+If on, the gesture is active until you tap a second time, or until
+LockedDragTimeout expires.
+.TP
+\fBLockedDragTimeout\fR (Integer)
+This parameter specifies how long it takes (in milliseconds) for the
+LockedDrags mode to be automatically turned off after the finger is
+released from the touchpad.
 .TP
 \fBRTCornerButton\fR (Integer)
 .

commit adf4851a471963702df28522fa50cc9cab09302a
Author: Peter Osterlund [EMAIL PROTECTED]
Date:   Thu May 17 13:14:22 2007 +0200

Update the state machine diagram for locked drag timeout.

diff --git a/docs/tapndrag.dia b/docs/tapndrag.dia
index b50acb3..a411572 100644
--- a/docs/tapndrag.dia
+++ b/docs/tapndrag.dia
@@ -79,6 +79,12 @@
   dia:attribute name=elem_height
 dia:real val=2/
   /dia:attribute
+  dia:attribute name=line_colour
+dia:color val=#00/
+  /dia:attribute
+  dia:attribute name=fill_colour
+dia:color val=#ff/
+  /dia:attribute
   dia:attribute name=text_outside
 dia:boolean val=false/
   /dia:attribute
@@ -97,7 +103,7 @@
 dia:real val=0.8/
   /dia:attribute
   dia:attribute name=pos
-dia:point val=12.0013,7.89119/
+dia:point val=12.0013,7.94119/
   /dia:attribute
   dia:attribute name=color
 dia:color val=#00/
@@ -124,6 +130,12 @@
   dia:attribute name=elem_height
 dia:real val=2/
   /dia:attribute
+  dia:attribute name=line_colour
+dia:color val=#00/
+  /dia:attribute
+  dia:attribute name=fill_colour
+dia:color val=#ff/
+  /dia:attribute
   dia:attribute name=text_outside
 dia:boolean val=false/
   /dia:attribute
@@ -142,7 +154,7 @@
 dia:real val=0.8/
   /dia:attribute
   dia:attribute name=pos
-dia:point val=12.0013,14.3985/
+dia:point val=12.0013,14.4485/
   /dia:attribute
   dia:attribute name=color
 dia:color val=#00/
@@ -169,6 +181,12 @@
   dia:attribute name=elem_height
 dia:real val=2/
   /dia:attribute
+  dia:attribute name=line_colour
+dia:color val=#00/
+  /dia:attribute
+  dia:attribute name=fill_colour
+dia:color val=#ff/
+  /dia:attribute
   dia:attribute name=text_outside
 dia:boolean val=false/
   /dia:attribute
@@ -187,7 +205,7 @@
 dia:real val=0.8/
   /dia:attribute
   dia:attribute name=pos
-dia:point val=5.44128,20.8385/
+dia:point val=5.44128,20.8885/
   /dia:attribute
   dia:attribute name=color
 dia:color val=#00/
@@ -214,6 +232,12 @@
   dia:attribute name=elem_height
 dia:real val=2/
   /dia:attribute
+  dia:attribute name=line_colour
+dia:color val=#00/
+  /dia:attribute
+  dia:attribute name=fill_colour
+dia:color val=#ff/
+  /dia:attribute
   dia:attribute name=text_outside
 dia:boolean val=false/
   /dia:attribute
@@ -232,7 +256,7 @@
 dia:real val=0.8/
   /dia:attribute
   dia:attribute name=pos
-dia:point val=12.0013,27.993/
+dia:point val=12.0013,28.043/
   /dia:attribute
   dia:attribute name=color
 dia:color val=#00/
@@ -259,6 +283,12 @@
   dia:attribute name=elem_height
 dia:real val=2/
   /dia:attribute
+  dia:attribute name=line_colour
+dia:color val=#00/
+  /dia:attribute
+  dia:attribute name=fill_colour
+dia:color val=#ff/
+  /dia:attribute
   dia:attribute name=text_outside
 dia:boolean val=false/
   /dia:attribute
@@ -277,7 +307,7 @@
 dia:real val=0.8/
   /dia:attribute
   dia:attribute name=pos
-dia:point val=21.3937,14.3985/
+dia:point val=21.3937,14.4485/
   /dia:attribute
   dia:attribute name=color
 dia:color val=#00/
@@ -304,6 +334,12 @@

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

2007-04-30 Thread Mattia Dongili
 COMPATIBILITY|3 +++
 alpscomm.c   |2 +-
 eventcomm.c  |   16 +---
 manpages/synaptics.5 |   20 
 ps2comm.c|2 +-
 psmcomm.c|2 +-
 synaptics.c  |3 ++-
 synaptics.h  |1 +
 synclient.c  |3 ++-
 synproto.h   |3 ++-
 10 files changed, 42 insertions(+), 13 deletions(-)

New commits:
commit 473912f50ffd2b26bd2f638f9d87f86cf60e2dd6
Author: Peter Osterlund [EMAIL PROTECTED]
Date:   Wed Apr 11 23:33:57 2007 +0200

Add a config option to prevent the driver from grabbing the event
device for exclusive use.

diff --git a/alpscomm.c b/alpscomm.c
index e315c1c..822d173 100644
--- a/alpscomm.c
+++ b/alpscomm.c
@@ -72,7 +72,7 @@ ALPS_initialize(int fd)
 }
 
 static void
-ALPSDeviceOnHook(LocalDevicePtr local)
+ALPSDeviceOnHook(LocalDevicePtr local, SynapticsSHM *para)
 {
 }
 
diff --git a/eventcomm.c b/eventcomm.c
index 1b0f8bc..0afa189 100644
--- a/eventcomm.c
+++ b/eventcomm.c
@@ -41,14 +41,16 @@
  /
 
 static void
-EventDeviceOnHook(LocalDevicePtr local)
+EventDeviceOnHook(LocalDevicePtr local, SynapticsSHM *para)
 {
-/* Try to grab the event device so that data don't leak to /dev/input/mice 
*/
-int ret;
-SYSCALL(ret = ioctl(local-fd, EVIOCGRAB, (pointer)1));
-if (ret  0) {
-   xf86Msg(X_WARNING, %s can't grab event device, errno=%d\n,
-   local-name, errno);
+if (para-grab_event_device) {
+   /* Try to grab the event device so that data don't leak to 
/dev/input/mice */
+   int ret;
+   SYSCALL(ret = ioctl(local-fd, EVIOCGRAB, (pointer)1));
+   if (ret  0) {
+   xf86Msg(X_WARNING, %s can't grab event device, errno=%d\n,
+   local-name, errno);
+   }
 }
 }
 
diff --git a/manpages/synaptics.5 b/manpages/synaptics.5
index ce44f98..4954402 100644
--- a/manpages/synaptics.5
+++ b/manpages/synaptics.5
@@ -324,6 +324,26 @@ Coasting threshold scrolling speed.
 .TP
 \fBSingleTapTimeout\fR (Integer)
 Timeout after a tap to recognize it as a single tap.
+.TP
+\fBGrabEventDevice\fR (Bool)
+If GrabEventDevice is true, the driver will grab the event device for
+exclusive use when using the linux 2.6 event protocol.
+.
+When using other protocols, this option has no effect.
+.
+Grabbing the event device means that no other user space or kernel
+space program sees the touchpad events. 
+.
+This is desirable if the X config file includes /dev/input/mice as an
+input device, but is undesirable if you want to monitor the device
+from user space.
+.
+When changing this parameter with the synclient program, the change
+will not take effect until the synaptics driver is disabled and
+reenabled. 
+.
+This can be achieved by switching to a text console and then switching
+back to X.
 .
 .
 .LP
diff --git a/ps2comm.c b/ps2comm.c
index 3defd56..fe1b929 100644
--- a/ps2comm.c
+++ b/ps2comm.c
@@ -433,7 +433,7 @@ ps2_print_ident(const struct SynapticsHwInfo *synhw)
 
 
 static void
-PS2DeviceOnHook(LocalDevicePtr local)
+PS2DeviceOnHook(LocalDevicePtr local, SynapticsSHM* para)
 {
 }
 
diff --git a/psmcomm.c b/psmcomm.c
index 257ec13..125ccd6 100644
--- a/psmcomm.c
+++ b/psmcomm.c
@@ -89,7 +89,7 @@ PSMQueryIsSynaptics(LocalDevicePtr local)
 }
 
 static void
-PSMDeviceOnHook(LocalDevicePtr local)
+PSMDeviceOnHook(LocalDevicePtr local, SynapticsSHM *para)
 {
 }
 
diff --git a/synaptics.c b/synaptics.c
index 4659b48..df71de8 100644
--- a/synaptics.c
+++ b/synaptics.c
@@ -430,6 +430,7 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
 pars-coasting_speed = synSetFloatOption(opts, CoastingSpeed, 0.0);
 pars-press_motion_min_factor = synSetFloatOption(opts, 
PressureMotionMinFactor, 1.0);
 pars-press_motion_max_factor = synSetFloatOption(opts, 
PressureMotionMaxFactor, 1.0);
+pars-grab_event_device = xf86SetBoolOption(opts, GrabEventDevice, TRUE);
 
 /* Warn about (and fix) incorrectly configured TopEdge/BottomEdge 
parameters */
 if (pars-top_edge  pars-bottom_edge) {
@@ -555,7 +556,7 @@ DeviceOn(DeviceIntPtr dev)
return !Success;
 }
 
-priv-proto_ops-DeviceOnHook(local);
+priv-proto_ops-DeviceOnHook(local, priv-synpara);
 
 priv-comm.buffer = XisbNew(local-fd, 64);
 if (!priv-comm.buffer) {
diff --git a/synaptics.h b/synaptics.h
index 1f9f8ba..0e56adb 100644
--- a/synaptics.h
+++ b/synaptics.h
@@ -100,6 +100,7 @@ typedef struct _SynapticsSHM
 int press_motion_max_z;/* finger pressure at which maximum 
pressure motion factor is applied */
 double press_motion_min_factor;/* factor applied on speed when 
finger pressure is at minimum */
 double press_motion_max_factor;/* factor applied on speed when 
finger pressure is at minimum */
+Bool grab_event_device;/* grab event device for exclusive 
use? */
 } SynapticsSHM;