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

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



 NEWS                                                             |  458 -------
 configure.ac                                                     |   61 
 debian/66-xorg-synaptics.rules                                   |   16 
 debian/NEWS                                                      |   31 
 debian/README.source                                             |   73 +
 debian/changelog                                                 |  245 +++
 debian/compat                                                    |    2 
 debian/control                                                   |   26 
 debian/copyright                                                 |    2 
 debian/patches/01-synaptics-dont-grab-if-not-on-current-VT.patch |   10 
 debian/patches/02-do-not-use-synaptics-for-keyboards.patch       |   66 +
 debian/patches/105_always_enable_multifinger_click.patch         |   19 
 debian/patches/105_correct_multifinger_click.patch               |   14 
 debian/patches/107_reduce_cursor_speed.patch                     |   15 
 debian/patches/108_syndaemon_xinput_props.patch                  |  338 -----
 debian/patches/114_jumpy_cursor_first_part.patch                 |  218 +++
 debian/patches/series                                            |    6 
 debian/rules                                                     |   12 
 debian/xfree86-driver-synaptics.README.Debian                    |    7 
 debian/xserver-xorg-input-synaptics.README.Debian                |   41 
 debian/xserver-xorg-input-synaptics.docs                         |    1 
 debian/xserver-xorg-input-synaptics.install                      |    1 
 debian/xserver-xorg-input-synaptics.links                        |    1 
 debian/xsfbs/repack.sh                                           |   32 
 debian/xsfbs/xsfbs.mk                                            |   21 
 debian/xsfbs/xsfbs.sh                                            |  311 -----
 docs/tapndrag.dia                                                |  164 +-
 fdi/11-x11-synaptics.fdi                                         |   22 
 include/synaptics-properties.h                                   |   24 
 include/synaptics.h                                              |   70 -
 man/synaptics.man                                                |  434 +++++--
 man/synclient.man                                                |   19 
 man/syndaemon.man                                                |   18 
 src/alpscomm.c                                                   |   20 
 src/eventcomm.c                                                  |  147 +-
 src/eventcomm.h                                                  |    1 
 src/properties.c                                                 |  157 ++
 src/ps2comm.c                                                    |  125 +-
 src/ps2comm.h                                                    |   44 
 src/psmcomm.c                                                    |   38 
 src/synaptics.c                                                  |  570 ++++++---
 src/synapticsstr.h                                               |   89 +
 src/synproto.h                                                   |    8 
 tools/Makefile.am                                                |    9 
 tools/synclient.c                                                |  616 +++++++---
 tools/syndaemon.c                                                |  388 +++++-
 46 files changed, 2950 insertions(+), 2040 deletions(-)

New commits:
commit 99b7828fd98407d21fad44ccdf2ff0b517c82126
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date:   Mon Dec 7 17:19:32 2009 +0200

    Merge changes from ubuntu.

diff --git a/debian/changelog b/debian/changelog
index 5aa13dc..12f5b8e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,19 @@
+xserver-xorg-input-synaptics (1.2.0-3ubuntu1) UNRELEASED; urgency=low
+
+  * Merge from Debian experimental, remaining changes:
+    - 103_enable_cornertapping.patch: Enable right/middle clicks by
+      tapping in the bottom- and top-right corners.
+    - 104_always_enable_tapping.patch: Enable tapping regardless of the
+      presence of physical buttons.
+    - 106_always_enable_vert_edge_scroll.patch: Enable vertical edge 
+      tapping by default even if we enable two-finger scrolling as well.
+  * Disabled until fixed to apply and work:
+    - 114_jumpy_cursor_first_part.patch
+  * Dropped, using udev now:
+    - 115_jumpy_cursor_second_part.patch
+
+ -- Timo Aaltonen <tjaalton@ubuntu.com>  Mon, 07 Dec 2009 16:47:56 +0200
+
 xserver-xorg-input-synaptics (1.2.0-3) experimental; urgency=low
 
   [ Julien Cristau ]
@@ -38,6 +54,87 @@ xserver-xorg-input-synaptics (1.2.0-1) unstable; urgency=low
 
  -- Mattia Dongili <malattia@debian.org>  Thu, 19 Nov 2009 21:24:49 +0900
 
+xserver-xorg-input-synaptics (1.1.2-1ubuntu7) karmic; urgency=low
+
+  * debian/patches:
+    - 115_jumpy_cursor_second_part.patch: Set AreaBottomEdge to
+      4100 for Inspiron 1011 and Inspiron 1012. 
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Wed, 14 Oct 2009 16:55:16 +0200
+
+xserver-xorg-input-synaptics (1.1.2-1ubuntu6) karmic; urgency=low
+
+  * debian/patches:
+    - Split 114_jumpy_cursor_threshold.patch into 
+      114_jumpy_cursor_first_part.patch and
+      115_jumpy_cursor_second_part.patch so as to keep options
+      which belong in the fdi file separate from the code.
+    - 115_jumpy_cursor_second_part.patch:
+      + Add quirk for Inspiron 1012.
+    - Remove 114_jumpy_cursor_threshold.patch_old.
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Mon, 05 Oct 2009 12:09:14 +0200
+
+xserver-xorg-input-synaptics (1.1.2-1ubuntu5) karmic; urgency=low
+
+  * Add lpia to the list of Architectures.  LP: #413579.
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Mon, 07 Sep 2009 10:44:54 -0700
+
+xserver-xorg-input-synaptics (1.1.2-1ubuntu4) karmic; urgency=low
+
+  * debian/patches:
+    - 112_jumpy_cursor_quirks.patch:
+      + Drop patch.
+    - 114_jumpy_cursor_threshold.patch:
+      + Replace 112_jumpy_cursor_quirks.patch.
+      + Make the threshold an XInput property.
+      + Add quirk for Dell Mini10v and for HP Mini 1000 in the
+        fdi file.
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Wed, 02 Sep 2009 10:44:28 +0200
+
+xserver-xorg-input-synaptics (1.1.2-1ubuntu3) karmic; urgency=low
+
+  * debian/patches:
+    - 112_jumpy_cursor_quirks.patch: Make sure that the quirk
+      affects only the Dell Mini 10v (LP: #405943).
+    - 103_enable_cornertapping.patch: Don't trigger middle click
+      when tapping on the top right corner button (LP: #386017).
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Mon, 17 Aug 2009 10:31:14 +0200
+
+xserver-xorg-input-synaptics (1.1.2-1ubuntu2) karmic; urgency=low
+
+  * debian/patches:
+    - 105_correct_multifinger_click.patch: Drop patch as it breaks
+      the expected behavior for multitouch clicking (LP: #320585).
+    - 111_add_active_area.patch: Backport "Synaptics Area" property
+      from upstream (LP: #402863).
+    - 112_jumpy_cursor_quirks.patch: Add Quirk for Dell Mini 10v 
+      touchpad (LP: #402863).
+    - 113_add_capabilities.patch: Backport read-only "Synaptics 
+      Capabilities" property from upstream.
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Wed, 22 Jul 2009 10:42:11 +0200
+
+xserver-xorg-input-synaptics (1.1.2-1ubuntu1) karmic; urgency=low
+
+  * Merge from Debian unstable, Remaining changes:
+    - Restore the Ubuntu patch series. (LP: #378391)
+     - 103_enable_cornertapping.patch: Enable right/middle clicks by
+       tapping in the bottom- and top-right corners.
+     - 104_always_enable_tapping.patch: Enable tapping regardless of the
+       presence of physical buttons.
+     - 105_correct_multifinger_click.patch: Swap the right/middle clicks
+       generated by multi-finger tapping.
+     - 106_always_enable_vert_edge_scroll.patch: Enable vertical edge 
+       tapping by default even if we enable two-finger scrolling as well.
+     - 110_remove_bound_auto_adjust.patch: Don't auto-adjust to bounds of
+       the hardware scroll area.
+
+ -- Robert Hooker (Sarvatt) <sarvatt@gmail.com>  Sun, 28 Jun 2009 18:13:52 -0400
+
 xserver-xorg-input-synaptics (1.1.2-1) unstable; urgency=low
 
   [ Mattia Dongili ]
@@ -89,6 +186,43 @@ xserver-xorg-input-synaptics (0.99.3-3) experimental; urgency=low
 
  -- Julien Cristau <jcristau@debian.org>  Mon, 26 Jan 2009 09:08:10 +0100
 
+xfree86-driver-synaptics (0.99.3-2ubuntu4) jaunty; urgency=low
+
+  * debian/patches/110_remove_bound_auto_adjust.patch:
+    - Small change to make sure that the driver does not
+      auto-adjust to the bounds of the hardware scroll area
+      as this causes problem to the touchpads of Acer Aspire
+      One units (LP: #320632).
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Thu, 26 Mar 2009 17:00:52 +0100
+
+xfree86-driver-synaptics (0.99.3-2ubuntu3) jaunty; urgency=low
+
+  * debian/patches/109_override_alps_settings.patch:
+    - Add customised settings for ALPS touchpad (LP: #320632):
+      o Enable vertTwoFingerScroll by default.
+      o Set RightEdge to 900.
+      o Set ClickTime to 0.
+      o Set SingleTapTimeout to 0.
+      o Set MinSpeed to 0.45.
+      o Set MaxSpeed to 0.75.
+  * debian/patches/107_reduce_cursor_speed.patch:
+    - drop and merge with 109_override_alps_settings.patch.
+
+ -- Alberto Milone (tseliot) <albertomilone@alice.it>  Sat, 28 Feb 2009 10:20:08 +0100
+
+xfree86-driver-synaptics (0.99.3-2ubuntu2) jaunty; urgency=low
+
+  [Alberto Milone]
+  * debian/patches/105_always_enable_multifinger_click.patch:
+    - Drop patch
+  * debian/patches/105_correct_multifinger_click.patch:
+    - Fix inverted buttons
+    - Restore ability to drag and drop with physical buttons
+    (LP: #320632)
+
+ -- Alberto Milone (tseliot) <albertomilone@alice.it>  Sat, 31 Jan 2009 18:48:37 +0100
+
 xfree86-driver-synaptics (0.99.3-2ubuntu1) jaunty; urgency=low
 
   * Merge from Debian experimental.
diff --git a/debian/patches/105_always_enable_multifinger_click.patch b/debian/patches/105_always_enable_multifinger_click.patch
deleted file mode 100644
index a43d05c..0000000
--- a/debian/patches/105_always_enable_multifinger_click.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: xserver-xorg-input-synaptics/src/synaptics.c
-===================================================================
---- xserver-xorg-input-synaptics.orig/src/synaptics.c	2009-01-26 09:52:27.000000000 +0200
-+++ xserver-xorg-input-synaptics/src/synaptics.c	2009-01-26 09:52:44.000000000 +0200
-@@ -408,11 +408,10 @@
-     tapButton2 = 2;
-     tapButton3 = 3;
- 
--    /* Enable multifinger-click if we don't have right/middle button,
--       otherwise clickFinger is always button 1. */
-+    /* Enable multifinger-click */
-     clickFinger1 = 1;
--    clickFinger2 = priv->has_right ? 1 : 3;
--    clickFinger3 = priv->has_middle ? 1 : 2;
-+    clickFinger2 = 2;
-+    clickFinger3 = 3;
- 
-     /* Enable vert edge scroll if we can't detect doubletap */
-     vertEdgeScroll = priv->has_double ? FALSE : TRUE;
diff --git a/debian/patches/105_correct_multifinger_click.patch b/debian/patches/105_correct_multifinger_click.patch
new file mode 100644
index 0000000..b620f6c
--- /dev/null
+++ b/debian/patches/105_correct_multifinger_click.patch
@@ -0,0 +1,14 @@
+diff -Nur xfree86-driver-synaptics-0.99.3.orig/src/synaptics.c xfree86-driver-synaptics-0.99.3/src/synaptics.c
+--- xfree86-driver-synaptics-0.99.3.orig/src/synaptics.c	2008-12-15 00:33:15.000000000 +0100
++++ xfree86-driver-synaptics-0.99.3/src/synaptics.c	2009-01-31 18:40:37.000000000 +0100
+@@ -411,8 +411,8 @@
+     /* Enable multifinger-click if we don't have right/middle button,
+        otherwise clickFinger is always button 1. */
+     clickFinger1 = 1;
+-    clickFinger2 = priv->has_right ? 1 : 3;
+-    clickFinger3 = priv->has_middle ? 1 : 2;
++    clickFinger2 = priv->has_right ? 1 : 2;
++    clickFinger3 = priv->has_middle ? 1 : 3;
+ 
+     /* Enable vert edge scroll if we can't detect doubletap */
+     vertEdgeScroll = priv->has_double ? FALSE : TRUE;
diff --git a/debian/patches/107_reduce_cursor_speed.patch b/debian/patches/107_reduce_cursor_speed.patch
deleted file mode 100644
index b7edcc7..0000000
--- a/debian/patches/107_reduce_cursor_speed.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: xserver-xorg-input-synaptics/src/synaptics.c
-===================================================================
---- xserver-xorg-input-synaptics.orig/src/synaptics.c	2009-01-26 09:52:48.000000000 +0200
-+++ xserver-xorg-input-synaptics/src/synaptics.c	2009-01-26 09:52:54.000000000 +0200
-@@ -483,8 +483,8 @@
-     pars->press_motion_min_z = xf86SetIntOption(opts, "PressureMotionMinZ", pressureMotionMinZ);
-     pars->press_motion_max_z = xf86SetIntOption(opts, "PressureMotionMaxZ", pressureMotionMaxZ);
- 
--    pars->min_speed = synSetFloatOption(opts, "MinSpeed", 0.4);
--    pars->max_speed = synSetFloatOption(opts, "MaxSpeed", 0.7);
-+    pars->min_speed = synSetFloatOption(opts, "MinSpeed", 0.02);
-+    pars->max_speed = synSetFloatOption(opts, "MaxSpeed", 0.5);
-     pars->accl = synSetFloatOption(opts, "AccelFactor", accelFactor);
-     pars->trackstick_speed = synSetFloatOption(opts, "TrackstickSpeed", 40);
-     pars->scroll_dist_circ = synSetFloatOption(opts, "CircScrollDelta", 0.1);
diff --git a/debian/patches/108_syndaemon_xinput_props.patch b/debian/patches/108_syndaemon_xinput_props.patch
deleted file mode 100644
index 4a7986b..0000000
--- a/debian/patches/108_syndaemon_xinput_props.patch
+++ /dev/null
@@ -1,338 +0,0 @@
-Index: xserver-xorg-input-synaptics/tools/syndaemon.c
-===================================================================
---- xserver-xorg-input-synaptics.orig/tools/syndaemon.c	2009-01-23 14:24:31.000000000 +0200
-+++ xserver-xorg-input-synaptics/tools/syndaemon.c	2009-01-26 09:43:16.000000000 +0200
-@@ -1,5 +1,6 @@
- /*
-  * Copyright © 2003-2004 Peter Osterlund
-+ * Copyright © 2008 William Grant
-  *
-  * Permission to use, copy, modify, distribute, and sell this software
-  * and its documentation for any purpose is hereby granted without
-@@ -22,6 +23,7 @@
-  *
-  * Authors:
-  *      Peter Osterlund (petero2@telia.com)
-+ *      William Grant (wgrant@ubuntu.com)
-  */
- 
- #ifdef HAVE_CONFIG_H
-@@ -39,9 +41,13 @@
- #include <sys/time.h>
- #include <sys/stat.h>
- 
-+#include <X11/Xatom.h>
-+#include <X11/extensions/XInput.h>
-+
- #include "synaptics.h"
- 
- static SynapticsSHM *synshm;
-+static int using_synshm;
- static int pad_disabled;
- static int disable_taps_only;
- static int ignore_modifier_combos;
-@@ -64,15 +70,114 @@
-     fprintf(stderr, "  -t Only disable tapping and scrolling, not mouse movements.\n");
-     fprintf(stderr, "  -k Ignore modifier keys when monitoring keyboard activity.\n");
-     fprintf(stderr, "  -K Like -k but also ignore Modifier+Key combos.\n");
-+    fprintf(stderr, "  -S Use SHMConfig even if input device properties are available.\n");
-     exit(1);
- }
- 
-+static XDevice
-+*device_is_touchpad(Display *display, XDeviceInfo deviceinfo)
-+{
-+    XDevice *device;
-+    Atom *props;
-+    int nprops;
-+    char *name;
-+
-+    device = XOpenDevice(display, deviceinfo.id);
-+    if (!device)
-+        return NULL;
-+
-+    props = XListDeviceProperties(display, device, &nprops);
-+    while (nprops--) {
-+	name = XGetAtomName(display, props[nprops]);
-+	if (!strcmp(name, "Synaptics Off")) {
-+	    free(name);
-+	    XFree(props);
-+	    return device;
-+	}
-+	free(name);
-+    }
-+
-+    XFree(props);
-+    XCloseDevice(display, device);
-+    return NULL;
-+}
-+
- static int
--enable_touchpad(void)
-+get_touchpad_off(Display *display)
-+{
-+    int numdevices, i;
-+    XDeviceInfo *devicelist;
-+    XDevice *device;
-+    Atom realtype, prop;
-+    int realformat;
-+    unsigned long nitems, bytes_after;
-+    unsigned char *data;
-+    int result;
-+
-+    if (using_synshm)
-+	return synshm->touchpad_off;
-+
-+    devicelist = XListInputDevices (display, &numdevices);
-+
-+    prop = XInternAtom(display, "Synaptics Off", False);
-+
-+    for (i = 0; i < numdevices; i++) {
-+	if ((devicelist[i].use >= IsXExtensionDevice) &&
-+	    (device = device_is_touchpad(display, devicelist[i]))) {
-+	    XGetDeviceProperty(display, device, prop, 0, 1, False,
-+			       XA_INTEGER, &realtype, &realformat, &nitems,
-+			       &bytes_after, &data);
-+
-+	    if (nitems < 1) {
-+		fprintf(stderr, "Touchpad didn't return status information.\n");
-+		exit(2);
-+	    }
-+
-+	    result = data[0];
-+	    XFree(devicelist);
-+	    XFree(data);
-+	    XCloseDevice(display, device);
-+	    return result;
-+        }
-+    }
-+    XFree(devicelist);
-+    return 1;
-+}
-+
-+static void
-+set_touchpad_off(Display *display, int value)
-+{
-+    int numdevices, i;
-+    XDeviceInfo *devicelist;
-+    XDevice *device;
-+    Atom realtype, prop;
-+
-+    if (using_synshm) {
-+	synshm->touchpad_off = value;
-+	return;
-+    }
-+
-+    devicelist = XListInputDevices (display, &numdevices);
-+
-+    prop = XInternAtom(display, "Synaptics Off", False);
-+
-+    for (i = 0; i < numdevices; i++) {
-+	if ((devicelist[i].use >= IsXExtensionDevice) &&
-+            (device = device_is_touchpad(display, devicelist[i]))) {
-+	    XChangeDeviceProperty(display, device, prop, XA_INTEGER, 8, PropModeReplace,
-+				  (unsigned char *)&value, 1);
-+	    XCloseDevice(display, device);
-+        }
-+    }
-+    XFree(devicelist);
-+}
-+
-+static int
-+enable_touchpad(Display *display)
- {
-     int ret = 0;
-     if (pad_disabled) {
--	synshm->touchpad_off = 0;
-+	set_touchpad_off(display, 0);
- 	pad_disabled = 0;
- 	ret = 1;
-     }
-@@ -82,7 +187,10 @@
- static void
- signal_handler(int signum)
- {
--    enable_touchpad();
-+    Display *display = XOpenDisplay(NULL);
-+    enable_touchpad(display);
-+    XCloseDisplay(display);
-+
-     if (pid_file)
- 	unlink(pid_file);
-     kill(getpid(), signum);
-@@ -156,18 +264,53 @@
-  * Return non-zero if any physical touchpad button is currently pressed.
-  */
- static int
--touchpad_buttons_active(void)
-+touchpad_buttons_active(Display *display)
- {
-     int i;
--
--    if (synshm->left || synshm->right || synshm->up || synshm->down)
-+    if (using_synshm) {
-+	if (synshm->left || synshm->right || synshm->up || synshm->down)
-+	    return 1;
-+	for (i = 0; i < 8; i++)
-+	    if (synshm->multi[i])
- 	return 1;
--    for (i = 0; i < 8; i++)
--	if (synshm->multi[i])
-+	if (synshm->guest_left || synshm->guest_mid || synshm->guest_right)
- 	    return 1;
--    if (synshm->guest_left || synshm->guest_mid || synshm->guest_right)
--        return 1;
--    return 0;
-+	return 0;
-+    }
-+    else {
-+	XDevice *device;
-+	XDeviceInfo *devicelist;
-+	XDeviceState *state;
-+	XButtonState *buttonstate;
-+	XInputClass *class;
-+	int numdevices, classno, buttonno;
-+	int pressed = 0;
-+
-+	devicelist = XListInputDevices (display, &numdevices);
-+	for (i = 0; i < numdevices; i++)
-+	    if ((devicelist[i].use >= IsXExtensionDevice) &&
-+		(device = device_is_touchpad(display, devicelist[i]))) {
-+		state = XQueryDeviceState(display, device);
-+		class = state->data;
-+
-+		for (classno = 0; classno < state->num_classes; classno++)
-+		{
-+		    if (class->class == ButtonClass)
-+		    {
-+			buttonstate = (XButtonState *)class;
-+			for (buttonno = 1; buttonno <= buttonstate->num_buttons; buttonno++)
-+			    if (buttonstate->buttons[buttonno / 8] & (1 << (buttonno % 8)))
-+				pressed = 1;
-+		    }
-+		    class = (XInputClass *)((char *) class + class->length);
-+		}
-+		XFree(state);
-+		XCloseDevice(display, device);
-+		break;
-+	    }
-+	XFree(devicelist);
-+	return pressed;
-+    }
- }
- 
- static double
-@@ -191,23 +334,20 @@
- 	current_time = get_time();
- 	if (keyboard_activity(display))
- 	    last_activity = current_time;
--	if (touchpad_buttons_active())
-+	if (touchpad_buttons_active(display))
- 	    last_activity = 0.0;
- 
- 	if (current_time > last_activity + idle_time) {	/* Enable touchpad */
--	    if (enable_touchpad()) {
-+	    if (enable_touchpad(display)) {
- 		if (!background)
- 		    printf("Enable\n");
- 	    }
- 	} else {			    /* Disable touchpad */
--	    if (!pad_disabled && !synshm->touchpad_off) {
-+	    if (!pad_disabled && !get_touchpad_off(display)) {
- 		if (!background)
- 		    printf("Disable\n");
- 		pad_disabled = 1;
--		if (disable_taps_only)
--		    synshm->touchpad_off = 2;
--		else
--		    synshm->touchpad_off = 1;
-+		set_touchpad_off(display, disable_taps_only ? 2 : 1);
- 	    }
- 	}
- 
-@@ -254,7 +394,7 @@
-     int ignore_modifier_keys = 0;
- 
-     /* Parse command line parameters */
--    while ((c = getopt(argc, argv, "i:m:dtp:kK?")) != EOF) {
-+    while ((c = getopt(argc, argv, "i:m:dtp:kKS?")) != EOF) {
- 	switch(c) {
- 	case 'i':
- 	    idle_time = atof(optarg);
-@@ -278,6 +418,9 @@
- 	    ignore_modifier_combos = 1;
- 	    ignore_modifier_keys = 1;
- 	    break;
-+	case 'S':
-+	    using_synshm = 1;
-+	    break;
- 	default:
- 	    usage();
- 	    break;
-@@ -293,20 +436,42 @@
- 	exit(2);
-     }
- 
--    /* Connect to the shared memory area */
--    if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
--	if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1) {
--	    fprintf(stderr, "Can't access shared memory area. SHMConfig disabled?\n");
--	    exit(2);
--	} else {
--	    fprintf(stderr, "Incorrect size of shared memory area. Incompatible driver version?\n");
-+    if (!using_synshm) {
-+	XDeviceInfo *devicelist;
-+	XDevice *device;
-+	int numdevices, i;
-+
-+	using_synshm = 1;
-+
-+	devicelist = XListInputDevices (display, &numdevices);
-+	for (i =0; i < numdevices; i++)
-+	    if ((devicelist[i].use >= IsXExtensionDevice) &&
-+		(device = device_is_touchpad(display, devicelist[i]))) {
-+		XCloseDevice(display, device);
-+		using_synshm = 0;
-+		break;
-+	    }
-+	XFree(devicelist);
-+    }	
-+
-+
-+    if (using_synshm) {
-+        /* Connect to the shared memory area */
-+        if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
-+	    if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1) {
-+	        fprintf(stderr, "Can't access shared memory area. SHMConfig disabled?\n");
-+	        exit(2);
-+	    } else {
-+	        fprintf(stderr, "Incorrect size of shared memory area. Incompatible driver version?\n");
-+	        exit(2);
-+	    }
-+	}
-+
-+	if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL) {
-+	    perror("shmat");
- 	    exit(2);
- 	}
-     }
--    if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL) {
--	perror("shmat");
--	exit(2);
--    }
- 
-     /* Install a signal handler to restore synaptics parameters on exit */
-     install_signal_handler();
-Index: xserver-xorg-input-synaptics/configure.ac
-===================================================================
---- xserver-xorg-input-synaptics.orig/configure.ac	2009-01-23 14:24:31.000000000 +0200
-+++ xserver-xorg-input-synaptics/configure.ac	2009-01-26 09:43:16.000000000 +0200
-@@ -110,7 +110,7 @@
- AC_SUBST([CFLAGS])
- 
- # Checks for libraries.
--PKG_CHECK_MODULES(XLIB, x11) # needed for syndaemon
-+PKG_CHECK_MODULES(XLIB, x11 xi) # needed for syndaemon
- 
- # Checks for header files.
- AC_HEADER_STDC
diff --git a/debian/patches/114_jumpy_cursor_first_part.patch b/debian/patches/114_jumpy_cursor_first_part.patch
new file mode 100644
index 0000000..91a66df
--- /dev/null
+++ b/debian/patches/114_jumpy_cursor_first_part.patch
@@ -0,0 +1,218 @@
+diff -Nurp xserver-xorg-input-synaptics-1.1.2.orig/include/synaptics.h xserver-xorg-input-synaptics-1.1.2/include/synaptics.h
+--- xserver-xorg-input-synaptics-1.1.2.orig/include/synaptics.h	2009-09-29 18:05:07.019829000 +0200
++++ xserver-xorg-input-synaptics-1.1.2/include/synaptics.h	2009-09-29 18:06:43.334839549 +0200
+@@ -135,6 +135,7 @@ typedef struct _SynapticsSHM
+     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? */
+     int area_left_edge, area_right_edge, area_top_edge, area_bottom_edge; /* area coordinates absolute */
++    int jumpycursor_threshold;      /* jumpy cursor threshold */
+ } SynapticsSHM;
+ 
+ /*
+diff -Nurp xserver-xorg-input-synaptics-1.1.2.orig/include/synaptics-properties.h xserver-xorg-input-synaptics-1.1.2/include/synaptics-properties.h
+--- xserver-xorg-input-synaptics-1.1.2.orig/include/synaptics-properties.h	2009-09-29 18:05:14.659579000 +0200
++++ xserver-xorg-input-synaptics-1.1.2/include/synaptics-properties.h	2009-09-29 18:06:43.334839549 +0200
+@@ -149,4 +149,7 @@
+  * has_double, has_triple */
+ #define SYNAPTICS_PROP_CAPABILITIES "Synaptics Capabilities"
+ 
++/* 32 bit */
++#define SYNAPTICS_PROP_JUMPYCURSOR_THRESHOLD "Synaptics Jumpy Cursor Threshold"
++
+ #endif /* _SYNAPTICS_PROPERTIES_H_ */
+diff -Nurp xserver-xorg-input-synaptics-1.1.2.orig/man/synaptics.man xserver-xorg-input-synaptics-1.1.2/man/synaptics.man
+--- xserver-xorg-input-synaptics-1.1.2.orig/man/synaptics.man	2009-09-29 18:05:14.659579000 +0200
++++ xserver-xorg-input-synaptics-1.1.2/man/synaptics.man	2009-09-29 18:06:43.334839549 +0200
+@@ -486,6 +486,14 @@ Ignore movements, scrolling and tapping 
+ The option is disabled by default and can be enabled by setting the
+ AreaBottomEdge option to any integer value other than zero. Property: "Synaptics Area"
+ .
++.TP
++.BI "Option \*qJumpyCursorThreshold\*q \*q" integer \*q
++Set the threshold above which movement events are ignored on single-touch touchpads.
++.
++The option is disabled by default and can be enabled by setting the
++JumpyCursorThreshold option to any integer value other than zero. Property: "Synaptics 
++Jumpy Cursor Threshold"
++.
+ .LP
+ A tap event happens when the finger is touched and released in a time
+ interval shorter than MaxTapTime, and the touch and release
+@@ -839,6 +847,14 @@ scrolling.
+ 8 bit (BOOL), 5 values (read-only), has left button, has middle button, has
+ right button, two-finger detection, three-finger detection.
+ 
++.TP 7
++.BI "Synaptics Jumpy Cursor Threshold"
++The Synaptics Jumpy Cursor Threshold parameter is used to suppress movements (which
++take place in 20 milliseconds or less) whose covered distance is greater than or
++equal to the threshold on single-touch touchpads. This property is disabled by default.
++
++32 bit, 1 value. 0 disables the property.
++
+ .SH "NOTES"
+ There is an example hal policy file in
+ .I ${sourcecode}/fdi/11-x11-synaptics.fdi
+diff -Nurp xserver-xorg-input-synaptics-1.1.2.orig/src/properties.c xserver-xorg-input-synaptics-1.1.2/src/properties.c
+--- xserver-xorg-input-synaptics-1.1.2.orig/src/properties.c	2009-09-29 18:05:14.659579000 +0200
++++ xserver-xorg-input-synaptics-1.1.2/src/properties.c	2009-09-29 18:06:43.334839549 +0200
+@@ -82,6 +82,7 @@ Atom prop_pressuremotion_factor = 0;
+ Atom prop_grab                  = 0;
+ Atom prop_area                  = 0;
+ Atom prop_capabilities          = 0;
++Atom prop_jumpycursor_threshold = 0;
+ 
+ static Atom
+ InitAtom(DeviceIntPtr dev, char *name, int format, int nvalues, int *values)
+@@ -265,6 +266,8 @@ InitDeviceProperties(LocalDevicePtr loca
+     values[3] = priv->has_double;
+     values[4] = priv->has_triple;
+     prop_capabilities = InitAtom(local->dev, SYNAPTICS_PROP_CAPABILITIES, 8, 5, values);
++
++    prop_jumpycursor_threshold = InitAtom(local->dev, SYNAPTICS_PROP_JUMPYCURSOR_THRESHOLD, 32, 1, &para->jumpycursor_threshold);
+ }
+ 
+ int
+@@ -616,6 +619,12 @@ SetProperty(DeviceIntPtr dev, Atom prope
+         para->area_right_edge  = area[1];
+         para->area_top_edge    = area[2];
+         para->area_bottom_edge = area[3];
++    } else if (property == prop_jumpycursor_threshold)
++    {
++        if (prop->size != 1 || prop->format != 32 || prop->type != XA_INTEGER)
++            return BadMatch;
++
++        para->jumpycursor_threshold = *(INT32*)prop->data;
+     } else if (property == prop_capabilities)
+     {
+         /* read-only */
+diff -Nurp xserver-xorg-input-synaptics-1.1.2.orig/src/synaptics.c xserver-xorg-input-synaptics-1.1.2/src/synaptics.c
+--- xserver-xorg-input-synaptics-1.1.2.orig/src/synaptics.c	2009-09-29 18:05:07.019829000 +0200
++++ xserver-xorg-input-synaptics-1.1.2/src/synaptics.c	2009-09-29 18:06:43.334839549 +0200
+@@ -125,6 +125,9 @@ static Bool DeviceClose(DeviceIntPtr);
+ static Bool QueryHardware(LocalDevicePtr);
+ static void ReadDevDimensions(LocalDevicePtr);
+ 
++int old_time_millis = 0;
++Bool was_time_skipped = FALSE;
++
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
+ void InitDeviceProperties(LocalDevicePtr local);
+ int SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop,
+@@ -509,6 +512,7 @@ static void set_default_parameters(Local
+     pars->press_motion_min_factor = xf86SetRealOption(opts, "PressureMotionMinFactor", 1.0);
+     pars->press_motion_max_factor = xf86SetRealOption(opts, "PressureMotionMaxFactor", 1.0);
+     pars->grab_event_device = xf86SetBoolOption(opts, "GrabEventDevice", TRUE);
++    pars->jumpycursor_threshold = xf86SetIntOption(opts, "JumpyCursorThreshold", 0);
+ 
+     /* Warn about (and fix) incorrectly configured TopEdge/BottomEdge parameters */
+     if (pars->top_edge > pars->bottom_edge) {
+@@ -1448,11 +1452,12 @@ HandleTapProcessing(SynapticsPrivate *pr
+ #define HIST(a) (priv->move_hist[((priv->hist_index - (a) + SYNAPTICS_MOVE_HISTORY) % SYNAPTICS_MOVE_HISTORY)])
+ 
+ static void
+-store_history(SynapticsPrivate *priv, int x, int y, unsigned int millis)
++store_history(SynapticsPrivate *priv, int x, int y, int num_fingers, unsigned int millis)
+ {
+     int idx = (priv->hist_index + 1) % SYNAPTICS_MOVE_HISTORY;
+     priv->move_hist[idx].x = x;
+     priv->move_hist[idx].y = y;
++    priv->move_hist[idx].num_fingers = num_fingers;
+     priv->move_hist[idx].millis = millis;
+     priv->hist_index = idx;
+ }
+@@ -1601,11 +1606,70 @@ ComputeDeltas(SynapticsPrivate *priv, st
+ 	dy += hw->guest_dy;
+     }
+ 
++    /* Handle quirks here */
++    if (dx || dy) {
++        /* Work around issues caused by two fingers on multi-touch
++         * models
++         */
++        if (priv->has_double) {
++            if ((hw->numFingers < 2) &&
++                ((HIST(0).num_fingers >= 2) || (HIST(1).num_fingers >= 2) ||
++                 (HIST(2).num_fingers >= 2) || (HIST(3).num_fingers >= 2) )) {
++                dx = dy = 0;
++            }
++            old_time_millis = hw->millis;
++        }
++        /* Work around issues caused by two fingers on single-touch
++         * models
++         */
++        else {
++            /* If para->jumpycursor_threshold <= 0, quirks are not
++             * available
++             */
++            if (para->jumpycursor_threshold <= 0)
++                goto post_quirks;
++
++            int elapsed_time = hw->millis - HIST(0).millis;
++
++            /* Ignore deltas as they couldn't possibly happen in so little time */
++            if (elapsed_time <= 20 && (abs(dx) >= para->jumpycursor_threshold || abs(dy) >= para->jumpycursor_threshold)) {
++                dx = dy = 0.0;
++                was_time_skipped = FALSE;
++            }
++            /* A comparison between the timestamp in priv->move_hist and hw->millis shows
++             * that something went wrong and that an event was skipped, hence the deltas
++             * are wrong.
++             * Let's ignore the deltas and append the skipped event to priv->move_hist
++             * otherwise the next deltas will be wrong too.
++             */
++            else if (old_time_millis > 0 && (HIST(0).millis != old_time_millis)) {
++                dx = dy = 0.0;
++                was_time_skipped = TRUE;
++            }
++            /* Something went wrong and an event was previously skipped, hence these deltas
++             * are wrong.
++             * Let's ignore the deltas and set was_time_skipped to FALSE as the next deltas
++             * should be good.
++             */
++            else {
++                if (was_time_skipped) {
++                    dx = 0.0;
++                    dy = 0.0;
++                }
++                was_time_skipped = FALSE;
++            }
++
++            old_time_millis = hw->millis;
++        }
++
++    }
++post_quirks:
++
+     *dxP = dx;
+     *dyP = dy;
+ 
+     /* generate a history of the absolute positions */
+-    store_history(priv, hw->x, hw->y, hw->millis);
++    store_history(priv, hw->x, hw->y, hw->numFingers, hw->millis);
+ 
+     return delay;
+ }
+diff -Nurp xserver-xorg-input-synaptics-1.1.2.orig/src/synapticsstr.h xserver-xorg-input-synaptics-1.1.2/src/synapticsstr.h
+--- xserver-xorg-input-synaptics-1.1.2.orig/src/synapticsstr.h	2009-06-06 07:05:48.000000000 +0200
++++ xserver-xorg-input-synaptics-1.1.2/src/synapticsstr.h	2009-09-29 18:06:43.334839549 +0200
+@@ -33,6 +33,7 @@
+ typedef struct _SynapticsMoveHist
+ {
+     int x, y;
++    int num_fingers;
+     int millis;
+ } SynapticsMoveHistRec;
+ 
+diff -Nurp xserver-xorg-input-synaptics-1.1.2.orig/tools/synclient.c xserver-xorg-input-synaptics-1.1.2/tools/synclient.c
+--- xserver-xorg-input-synaptics-1.1.2.orig/tools/synclient.c	2009-09-29 18:05:07.019829000 +0200
++++ xserver-xorg-input-synaptics-1.1.2/tools/synclient.c	2009-09-29 18:06:43.339642879 +0200
+@@ -217,6 +217,8 @@ static struct Parameter params[] = {
+ 		SYNAPTICS_PROP_AREA,		32,	2),
+     DEFINE_PAR("AreaBottomEdge",       area_bottom_edge,             PT_INT,    0, 10000,
+ 		SYNAPTICS_PROP_AREA,		32,	3),
++    DEFINE_PAR("JumpyCursorThreshold", jumpycursor_threshold,        PT_INT,    0, 1000,
++		SYNAPTICS_PROP_JUMPYCURSOR_THRESHOLD,	32,	0),
+     { NULL, 0, 0, 0, 0 }
+ };
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 1e08dfe..f7bf7a3 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,7 +2,6 @@
 02-do-not-use-synaptics-for-keyboards.patch
 103_enable_cornertapping.patch
 104_always_enable_tapping.patch
-105_always_enable_multifinger_click.patch
+#105_correct_multifinger_click.patch
 106_always_enable_vert_edge_scroll.patch
-107_reduce_cursor_speed.patch
-108_syndaemon_xinput_props.patch
+#114_jumpy_cursor_first_part.patch

commit 1c78953a1ad46c37daee11f81317aeda54c157ef
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 5 21:27:57 2009 +0100

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index 9ed99ed..b6e1619 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,15 @@
-xserver-xorg-input-synaptics (1.2.0-3) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.2.0-3) experimental; urgency=low
 
+  [ Julien Cristau ]
   * Install an udev rule instead of an fdi file on linux.
   * Build against xserver 1.7 (closes: #549109).
   * Add sh4 and kfreebsd-{amd64,i386} to the arch list (closes: #557881,
     #559401).
 
- -- Julien Cristau <jcristau@debian.org>  Thu, 26 Nov 2009 18:55:04 +0100
+  [ Cyril Brulebois ]
+  * Upload to experimental.
+
+ -- Cyril Brulebois <kibi@debian.org>  Sat, 05 Dec 2009 21:27:48 +0100
 
 xserver-xorg-input-synaptics (1.2.0-2) unstable; urgency=low
 

commit 1539344733cf494cf3ff2fd9ff010dfac8267c8a
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat Dec 5 12:43:07 2009 +0100

    Add bug closer

diff --git a/debian/changelog b/debian/changelog
index b17e40d..9ed99ed 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,7 @@
 xserver-xorg-input-synaptics (1.2.0-3) UNRELEASED; urgency=low
 
   * Install an udev rule instead of an fdi file on linux.
-  * Build against xserver 1.7.
+  * Build against xserver 1.7 (closes: #549109).
   * Add sh4 and kfreebsd-{amd64,i386} to the arch list (closes: #557881,
     #559401).
 

commit 0a415ef9c6d1102d81b3015b18047339d8e1a387
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat Dec 5 12:38:44 2009 +0100

    Add sh4 and kfreebsd-{amd64,i386} to the arch list (closes: #557881, #559401).

diff --git a/debian/changelog b/debian/changelog
index 4f72d90..b17e40d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ xserver-xorg-input-synaptics (1.2.0-3) UNRELEASED; urgency=low
 
   * Install an udev rule instead of an fdi file on linux.
   * Build against xserver 1.7.
+  * Add sh4 and kfreebsd-{amd64,i386} to the arch list (closes: #557881,
+    #559401).
 
  -- Julien Cristau <jcristau@debian.org>  Thu, 26 Nov 2009 18:55:04 +0100
 
diff --git a/debian/control b/debian/control
index 84df90d..3a6665f 100644
--- a/debian/control
+++ b/debian/control
@@ -20,7 +20,7 @@ Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-input-synaptics
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-input-synaptics.git
 
 Package: xserver-xorg-input-synaptics
-Architecture: alpha amd64 arm armeb armel hppa i386 ia64 m68k mips mipsel powerpc sparc
+Architecture: alpha amd64 arm armeb armel hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel powerpc sh4 sparc
 Depends: ${shlibs:Depends}, ${xserver:Depends}, libxi6
 Conflicts: xfree86-driver-synaptics (<< 0.14.4-2), xorg-driver-synaptics
 Replaces: xfree86-driver-synaptics (<< 0.14.4-2), xorg-driver-synaptics

commit b06702185f768955598f904816af546f6648d6f7
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Dec 2 17:00:31 2009 +0100

    Build against xserver 1.7.

diff --git a/debian/changelog b/debian/changelog
index 370e5ed..4f72d90 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 xserver-xorg-input-synaptics (1.2.0-3) UNRELEASED; urgency=low
 
   * Install an udev rule instead of an fdi file on linux.
+  * Build against xserver 1.7.
 
  -- Julien Cristau <jcristau@debian.org>  Thu, 26 Nov 2009 18:55:04 +0100
 
diff --git a/debian/control b/debian/control
index 58360d4..84df90d 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Build-Depends:
  libxext-dev,
  libxi-dev (>= 2:1.2.0),
  x11proto-core-dev,
- xserver-xorg-dev (>= 2:1.5.99.901),
+ xserver-xorg-dev (>= 2:1.7),
  pkg-config,
  quilt,
  automake,

commit 90b1b3bebc6f3a1da3cec2220a12cfd617bb28d8
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Dec 2 16:59:57 2009 +0100

    Wrap build-deps in debian/control

diff --git a/debian/control b/debian/control
index a14aa62..58360d4 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,18 @@ Section: x11
 Priority: optional
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: Mattia Dongili <malattia@debian.org>
-Build-Depends: debhelper (>= 5.0.0), libx11-dev, libxext-dev, libxi-dev (>= 2:1.2.0), x11proto-core-dev, xserver-xorg-dev (>= 2:1.5.99.901), pkg-config, quilt, automake, libtool, xutils-dev
+Build-Depends:
+ debhelper (>= 5.0.0),
+ libx11-dev,
+ libxext-dev,
+ libxi-dev (>= 2:1.2.0),
+ x11proto-core-dev,
+ xserver-xorg-dev (>= 2:1.5.99.901),
+ pkg-config,
+ quilt,
+ automake,
+ libtool,


Reply to: