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

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



 .gitignore                                      |    1 
 Makefile.am                                     |    4 
 configure.ac                                    |    8 
 debian/changelog                                |   24 +
 debian/patches/101_no_horizscroll.patch         |   13 
 debian/patches/102_dont_check_abi.diff          |   44 --
 debian/patches/103_enable_cornertapping.patch   |    9 
 debian/patches/104_syndaemon_xinput_props.patch |  338 -----------------
 debian/patches/105_no_bcm5974_shmconfig.patch   |   12 
 debian/patches/series                           |    4 
 debian/rules                                    |    2 
 debian/watch                                    |    2 
 fdi/11-x11-synaptics.fdi                        |   55 --
 include/Makefile.am                             |    2 
 man/synaptics.man                               |   32 +
 src/alpscomm.c                                  |    2 
 src/eventcomm.c                                 |  136 ++++---
 src/properties.c                                |   12 
 src/ps2comm.c                                   |    2 
 src/psmcomm.c                                   |    2 
 src/psmcomm.h                                   |    2 
 src/synaptics.c                                 |  463 +++++++++++++-----------
 src/synapticsstr.h                              |    8 
 src/synproto.h                                  |    2 
 tools/synclient.c                               |    6 
 tools/syndaemon.c                               |   12 
 xorg-synaptics.pc.in                            |    6 
 27 files changed, 448 insertions(+), 755 deletions(-)

New commits:
commit 1916655a8754aae645c16e16a7263dcf00c140f8
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date:   Sat Jan 17 00:05:13 2009 +0200

    Update changelog, delete obsolete patches.

diff --git a/debian/changelog b/debian/changelog
index b510d98..d4cc683 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+xfree86-driver-synaptics (0.99.3-0ubuntu1) UNRELEASED; urgency=low
+
+  * Merge from Debian experimental.
+  * Drop obsolete patches:
+    -101_no_horizscroll.patch
+    -102_dont_check_abi.diff
+    -104_syndaemon_xinput_props.patch
+    -105_no_bcm5974_shmconfig.patch
+  * Update 103_enable_cornertapping.patch to apply.
+
+ -- Timo Aaltonen <tjaalton@ubuntu.com>  Sat, 17 Jan 2009 00:01:59 +0200
+
 xfree86-driver-synaptics (0.99.3-1) UNRELEASED; urgency=low
 
   [ Timo Aaltonen ]
diff --git a/debian/patches/101_no_horizscroll.patch b/debian/patches/101_no_horizscroll.patch
deleted file mode 100644
index 8ff26af..0000000
--- a/debian/patches/101_no_horizscroll.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: xserver-xorg-input-synaptics/src/synaptics.c
-===================================================================
---- xserver-xorg-input-synaptics.orig/src/synaptics.c	2008-09-29 10:08:18.000000000 +0300
-+++ xserver-xorg-input-synaptics/src/synaptics.c	2008-09-29 10:11:06.000000000 +0300
-@@ -451,7 +449,7 @@
-     pars->scroll_dist_horiz = xf86SetIntOption(opts, "HorizScrollDelta", vertScrollDelta);
-     pars->scroll_edge_vert = xf86SetBoolOption(opts, "VertEdgeScroll", TRUE);
-     pars->special_scroll_area_right  = xf86SetBoolOption(opts, "SpecialScrollAreaRight", TRUE);
--    pars->scroll_edge_horiz = xf86SetBoolOption(opts, "HorizEdgeScroll", TRUE);
-+    pars->scroll_edge_horiz = xf86SetBoolOption(opts, "HorizEdgeScroll", FALSE);
-     pars->scroll_edge_corner = xf86SetBoolOption(opts, "CornerCoasting", FALSE);
-     pars->scroll_twofinger_vert = xf86SetBoolOption(opts, "VertTwoFingerScroll", FALSE);
-     pars->scroll_twofinger_horiz = xf86SetBoolOption(opts, "HorizTwoFingerScroll", FALSE);
diff --git a/debian/patches/102_dont_check_abi.diff b/debian/patches/102_dont_check_abi.diff
deleted file mode 100644
index b8a17cc..0000000
--- a/debian/patches/102_dont_check_abi.diff
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: xserver-xorg-input-synaptics/src/properties.c
-===================================================================
---- xserver-xorg-input-synaptics.orig/src/properties.c	2008-09-29 10:07:16.000000000 +0300
-+++ xserver-xorg-input-synaptics/src/properties.c	2008-09-29 10:12:48.000000000 +0300
-@@ -28,7 +28,6 @@
- #endif
- 
- #include "xf86Module.h"
--#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
- 
- #include <X11/Xatom.h>
- #include <xf86Xinput.h>
-@@ -508,5 +507,4 @@
-     return TRUE;
- }
- 
--#endif
- 
-Index: xserver-xorg-input-synaptics/src/synaptics.c
-===================================================================
---- xserver-xorg-input-synaptics.orig/src/synaptics.c	2008-09-29 10:12:39.000000000 +0300
-+++ xserver-xorg-input-synaptics/src/synaptics.c	2008-09-29 10:13:30.000000000 +0300
-@@ -125,10 +125,8 @@
- static Bool DeviceClose(DeviceIntPtr);
- static Bool QueryHardware(LocalDevicePtr);
- 
--#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
- void InitDeviceProperties(LocalDevicePtr local);
- int SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop);
--#endif
- 
- InputDriverRec SYNAPTICS = {
-     1,
-@@ -726,10 +724,8 @@
-     if (!alloc_param_data(local))
- 	return !Success;
- 
--#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
-     InitDeviceProperties(local);
-     XIRegisterPropertyHandler(local->dev, SetProperty, NULL, NULL);
--#endif
- 
-     return Success;
- }
diff --git a/debian/patches/103_enable_cornertapping.patch b/debian/patches/103_enable_cornertapping.patch
index 8268cd7..531c9c3 100644
--- a/debian/patches/103_enable_cornertapping.patch
+++ b/debian/patches/103_enable_cornertapping.patch
@@ -2,15 +2,6 @@ Index: xfree86-driver-synaptics-0.15.2/src/synaptics.c
 ===================================================================
 --- xfree86-driver-synaptics-0.15.2.orig/src/synaptics.c	2008-09-10 20:53:29.000000000 +0200
 +++ xfree86-driver-synaptics-0.15.2/src/synaptics.c	2008-09-18 18:33:57.000000000 +0200
-@@ -441,7 +441,7 @@
-     pars->finger_high = xf86SetIntOption(opts, "FingerHigh", 30);
-     pars->finger_press = xf86SetIntOption(opts, "FingerPress", 256);
-     pars->tap_time = xf86SetIntOption(opts, "MaxTapTime", 180);
--    pars->tap_move = xf86SetIntOption(opts, "MaxTapMove", 25);
-+    pars->tap_move = xf86SetIntOption(opts, "MaxTapMove", 220);
-     pars->tap_time_2 = xf86SetIntOption(opts, "MaxDoubleTapTime", 180);
-     pars->click_time = xf86SetIntOption(opts, "ClickTime", 100);
-     pars->fast_taps = xf86SetIntOption(opts, "FastTaps", FALSE);
 @@ -470,8 +470,8 @@
      pars->guestmouse_off = xf86SetBoolOption(opts, "GuestMouseOff", FALSE);
      pars->locked_drags = xf86SetBoolOption(opts, "LockedDrags", FALSE);
diff --git a/debian/patches/104_syndaemon_xinput_props.patch b/debian/patches/104_syndaemon_xinput_props.patch
deleted file mode 100644
index 9a5e682..0000000
--- a/debian/patches/104_syndaemon_xinput_props.patch
+++ /dev/null
@@ -1,338 +0,0 @@
-Index: xfree86-driver-synaptics-0.15.2/tools/syndaemon.c
-===================================================================
---- xfree86-driver-synaptics-0.15.2.orig/tools/syndaemon.c	2008-10-09 15:03:49.000000000 +1100
-+++ xfree86-driver-synaptics-0.15.2/tools/syndaemon.c	2008-10-09 15:13:29.000000000 +1100
-@@ -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()
-+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()
-+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: xfree86-driver-synaptics-0.15.2/configure.ac
-===================================================================
---- xfree86-driver-synaptics-0.15.2.orig/configure.ac	2008-10-09 15:13:56.000000000 +1100
-+++ xfree86-driver-synaptics-0.15.2/configure.ac	2008-10-09 15:14:23.000000000 +1100
-@@ -109,7 +109,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/105_no_bcm5974_shmconfig.patch b/debian/patches/105_no_bcm5974_shmconfig.patch
deleted file mode 100644
index 85ae592..0000000
--- a/debian/patches/105_no_bcm5974_shmconfig.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: xserver-xorg-input-synaptics/fdi/11-x11-synaptics.fdi
-===================================================================
---- xserver-xorg-input-synaptics.orig/fdi/11-x11-synaptics.fdi	2008-10-13 21:15:54.000000000 +1100
-+++ xserver-xorg-input-synaptics/fdi/11-x11-synaptics.fdi	2008-10-13 21:16:00.000000000 +1100
-@@ -18,7 +18,6 @@
-       </match>
-       <match key="info.product" contains="bcm5974">
-         <merge key="input.x11_driver" type="string">synaptics</merge>
--        <merge key="input.x11_options.SHMConfig" type="string">true</merge>
-         <merge key="input.x11_options.LeftEdge" type="string">0</merge>
-         <merge key="input.x11_options.RightEdge" type="string">1280</merge>
-         <merge key="input.x11_options.TopEdge" type="string">0</merge>
diff --git a/debian/patches/series b/debian/patches/series
index a27c73a..66a03f4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,2 @@
 01-synaptics-dont-grab-if-not-on-current-VT.patch
-101_no_horizscroll.patch
-102_dont_check_abi.diff
 103_enable_cornertapping.patch
-104_syndaemon_xinput_props.patch
-105_no_bcm5974_shmconfig.patch

commit fb860330702ede91dbc095d0bd8586bb1a0c8c06
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Jan 16 05:28:09 2009 +0100

    update changelog for new upstream
    
    INSTALL is not created by automake, don't delete it

diff --git a/debian/changelog b/debian/changelog
index f240675..610ca18 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xfree86-driver-synaptics (0.15.0+git20080820-2) UNRELEASED; urgency=low
+xfree86-driver-synaptics (0.99.3-1) UNRELEASED; urgency=low
 
   [ Timo Aaltonen ]
   * Run autoreconf at build time; build-depend on automake, libtool and
@@ -6,6 +6,7 @@ xfree86-driver-synaptics (0.15.0+git20080820-2) UNRELEASED; urgency=low
 
   [ Julien Cristau ]
   * Add watch file.
+  * New upstream release.
 
  -- Timo Aaltonen <tepsipakki@ubuntu.com>  Fri, 05 Sep 2008 10:18:01 +0300
 
diff --git a/debian/rules b/debian/rules
index 8e29b0a..93c5fcc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -64,7 +64,7 @@ clean: xsfclean
 	rm -rf obj-*
 	rm -f $$(find -name Makefile.in)
 	rm -f compile config.guess config.sub configure depcomp install-sh
-	rm -f ltmain.sh missing INSTALL aclocal.m4 config.h.in
+	rm -f ltmain.sh missing aclocal.m4 config.h.in
 
 	dh_clean
 

commit 8ee8aa5ec764c9c816fc95e0bfc5f4e2aee3ba0f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 15 09:34:34 2008 +1000

    synaptics 1.0 RC3

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

commit b3bf47cf8ac5d24e3358c937d7456570378ceb6e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 10 09:22:33 2008 +1000

    Fix compilation issue (opts undeclared) for XINPUT ABI 0. (#18988)
    
    HistorySize is now deprecated for ABI > 0, so list it as a removed option in
    the man page.
    
    X.Org Bug 18988 <http://bugs.freedesktop.org/show_bug.cgi?id=18988>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Christoph Brill <egore911@egore911.de>
    Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
    (cherry picked from commit 8d5cf39e7f37ce78aaec423a9da397d72b1629d2)

diff --git a/man/synaptics.man b/man/synaptics.man
index 0030680..aaa448c 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -634,6 +634,8 @@ edge scrolling is enabled for both horizontal and vertical scrolling.
 The following options are no longer part of the driver configuration:
 .TP
 .BI "Option \*qRepeater\*q \*q" string \*q
+.TP
+.BI "Option \*qHistorySize\*q \*q" integer \*q
 
 .SH "AUTHORS"
 .LP
diff --git a/src/synaptics.c b/src/synaptics.c
index 8ccfb69..664d2fa 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -595,7 +595,7 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
     }
 
 #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
-    local->history_size = xf86SetIntOption(opts, "HistorySize", 0);
+    local->history_size = xf86SetIntOption(local->options, "HistorySize", 0);
 #endif
 
     xf86ProcessCommonOptions(local, local->options);

commit 3db3f4e04c7038477a03b092c55dfd063224f034
Author: Fedor P. Goncharov (Fredy) <fedgo@gorodok.net>
Date:   Thu Dec 4 17:16:40 2008 +0600

    Auto-adjust right_edge for touchpads with hardware scroll area.
    
    If RightEdge is specified as a config option, ignore the SpecialScrollArea.
    Otherwise, adjust right_edge to the bounds of the hardware scroll area.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Christoph Brill <egore911@egore911.de>
    Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
    (cherry picked from commit 0f2802726fe7374afeca7447e3127bc1d7f3247c)

diff --git a/man/synaptics.man b/man/synaptics.man
index 79958e7..0030680 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -101,7 +101,9 @@ user can access the configuration.
 X coordinate for left edge.
 .TP 7
 .BI "Option \*qRightEdge\*q \*q" integer \*q
-X coordinate for right edge.
+X coordinate for right edge. If this option is set,
+.BI SpecialScrollAreaRight
+is ignored.
 .TP 7
 .BI "Option \*qTopEdge\*q \*q" integer \*q
 Y coordinate for top edge.
@@ -110,9 +112,8 @@ Y coordinate for top edge.
 Y coordinate for bottom edge.
 .TP 7
 .BI "Option \*qSpecialScrollAreaRight\*q \*q" boolean \*q
-Detect special scroll wheel region and set coordinate automaticly (region
-must have a very large X  coordinate). Disable option if you don't want use
-it region.
+Some touchpads have a scroll region on the right edge. Disable this option if
+you have one but don't want use it as scroll wheel region.
 .TP 7
 .BI "Option \*qFingerLow\*q \*q" integer \*q
 When finger pressure drops below this value, the driver counts it as a
diff --git a/src/synaptics.c b/src/synaptics.c
index 6419607..8ccfb69 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -441,7 +441,11 @@ static void set_default_parameters(LocalDevicePtr local)
     pars->scroll_dist_vert = xf86SetIntOption(opts, "VertScrollDelta", horizScrollDelta);
     pars->scroll_dist_horiz = xf86SetIntOption(opts, "HorizScrollDelta", vertScrollDelta);
     pars->scroll_edge_vert = xf86SetBoolOption(opts, "VertEdgeScroll", vertEdgeScroll);
-    pars->special_scroll_area_right  = xf86SetBoolOption(opts, "SpecialScrollAreaRight", TRUE);
+    if (xf86CheckIfOptionUsedByName(opts, "RightEdge")) {
+      pars->special_scroll_area_right  = FALSE;
+    } else {
+      pars->special_scroll_area_right  = xf86SetBoolOption(opts, "SpecialScrollAreaRight", TRUE);
+    }
     pars->scroll_edge_horiz = xf86SetBoolOption(opts, "HorizEdgeScroll", horizEdgeScroll);
     pars->scroll_edge_corner = xf86SetBoolOption(opts, "CornerCoasting", FALSE);
     pars->scroll_twofinger_vert = xf86SetBoolOption(opts, "VertTwoFingerScroll", vertTwoFingerScroll);
@@ -891,7 +895,7 @@ edge_detection(SynapticsPrivate *priv, int x, int y)
     if (priv->synpara->circular_pad)
 	return circular_edge_detection(priv, x, y);
 
-    if (x >= priv->synpara->right_edge)
+    if (x > priv->synpara->right_edge)
 	edge |= RIGHT_EDGE;
     else if (x < priv->synpara->left_edge)
 	edge |= LEFT_EDGE;
@@ -1970,32 +1974,20 @@ HandleState(LocalDevicePtr local, struct SynapticsHwState *hw)
 
     /*
      * Some touchpads have a scroll wheel region where a very large X
-     * coordinate is reported. 
-     *
-     *    We suggest two  solution this problem:
+     * coordinate is reported. In this case for eliminate discontinuity,
+     * we adjust X and simulate new zone which adjacent to right edge.
      */
     if (hw->x <= XMAX_VALID) {
 	if (priv->largest_valid_x < hw->x)
 	    priv->largest_valid_x = hw->x;
     } else {
-      if (!(para->special_scroll_area_right))
-      /*               First:
-      * Adjust the X coordinate to eliminate the discontinuity 
-      * and use it region as 1 coordinate size line.
-      */
-	hw->x = priv->largest_valid_x + 1;
-      else {
-      /*               Second (default):
-       * Adjust the X coordinate to eliminate the discontinuity
-       * and use it region as scroll area automaticly.
-       */	
-	
-	if (priv->synpara->right_edge > priv->largest_valid_x + 1)
-	  priv->synpara->right_edge=priv->largest_valid_x + 1;
-	para->special_scroll_area_right = FALSE;
-       
 	hw->x = priv->largest_valid_x + 1;
-      }
+    /*
+     * If user didn't set right_edge manualy, auto-adjust to bounds of
+     * hardware scroll area.
+     */
+	if (para->special_scroll_area_right)
+	  priv->synpara->right_edge = priv->largest_valid_x;
     }
 
     edge = edge_detection(priv, hw->x, hw->y);

commit 8d0767d27e17fcda8a75b993033dfbc1a7cb3720
Author: Benjamin Close <Benjamin.Close@clearchain.com>
Date:   Thu Dec 4 15:59:41 2008 +1030

    Use the correct header so psmcomm.h builds again
    (cherry picked from commit 9e84eb6bd2010176c11022cb8c0af56c6e9d7663)

diff --git a/src/psmcomm.h b/src/psmcomm.h
index d079a12..07cb528 100644
--- a/src/psmcomm.h
+++ b/src/psmcomm.h
@@ -24,6 +24,6 @@
 
 #include <unistd.h>
 #include <sys/ioctl.h>
-#include <freebsd/mouse.h>
+#include <sys/mouse.h>
 
 #endif

commit cd71475e96ef4ec4a70ee93099fe4e00c2e44026
Author: Benjamin Close <Benjamin.Close@clearchain.com>
Date:   Thu Dec 4 15:57:03 2008 +1030

    Fix typo preventing psmcomm from being enabled on BSD platforms
    (cherry picked from commit 1131f24a0e592c8db8f4ebe509a1cdc263be545a)

diff --git a/configure.ac b/configure.ac
index 210168d..5718987 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,7 +66,7 @@ AM_CONDITIONAL([BUILD_EVENTCOMM], [test "x${BUILD_EVENTCOMM}" = "xyes"])
 if test "x${BUILD_EVENTCOMM}" = "xyes" ; then
 	AC_DEFINE(BUILD_EVENTCOMM, 1, [Optional backend eventcomm enabled])
 fi
-AM_CONDITIONAL([BUILD_PSMCOMM], [test "x$BUILD_PSMCOMM}" = "xyes"])
+AM_CONDITIONAL([BUILD_PSMCOMM], [test "x${BUILD_PSMCOMM}" = "xyes"])
 if test "x${BUILD_PSMCOMM}" = "xyes" ; then
 	AC_DEFINE(BUILD_PSMCOMM, 1, [Optional backend psmcomm enabled])
 fi

commit 57023ac28ab1fa31cbfb2772cc40733829bc181e
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Dec 4 15:13:46 2008 +0100

    Add watch file.

diff --git a/debian/changelog b/debian/changelog
index 27180fc..f240675 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,12 @@
 xfree86-driver-synaptics (0.15.0+git20080820-2) UNRELEASED; urgency=low
 
+  [ Timo Aaltonen ]
   * Run autoreconf at build time; build-depend on automake, libtool and
     xutils-dev.
 
+  [ Julien Cristau ]
+  * Add watch file.
+
  -- Timo Aaltonen <tepsipakki@ubuntu.com>  Fri, 05 Sep 2008 10:18:01 +0300
 
 xfree86-driver-synaptics (0.15.0+git20080820-1) experimental; urgency=low
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..8cc7324
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://xorg.freedesktop.org/releases/individual/driver/ xf86-input-synaptics-(.*)\.tar\.gz

commit 9dc49e1ec59e5d399853ef45c74b482a268fd134
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Thu Dec 4 15:43:39 2008 +1000

    synaptics 1.0 RC 2

diff --git a/configure.ac b/configure.ac
index 15ebb4a..210168d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-synaptics],
-        0.99.1,
+        0.99.2,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-input-synaptics)
 

commit 8673dc0ad3d0787c18479cbcbd24fd3d1563bba4
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Wed Dec 3 21:57:04 2008 +1000

    fdi: only match on input.touchpad, not on various product names.
    
    We can deal with anything that has absolute x/y and pressure or touch. So
    don't bother with various product names. If a touchpad doesn't work, fix it
    then.
    
    Suggested by Vojtech Pavlik.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    Signed-off-by: Christoph Brill <egore911@egore911.de>
    Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
    (cherry picked from commit d17231161f9cebc9ba961db0dd948c996e7cc369)

diff --git a/fdi/11-x11-synaptics.fdi b/fdi/11-x11-synaptics.fdi
index 5614149..4bf9ea0 100644
--- a/fdi/11-x11-synaptics.fdi
+++ b/fdi/11-x11-synaptics.fdi
@@ -2,14 +2,12 @@
 <deviceinfo version="0.2">
   <device>
     <match key="info.capabilities" contains="input.touchpad">
-      <match key="info.product" contains_outof="Synaptics TouchPad;AlpsPS/2 ALPS;appletouch;bcm5974">
         <merge key="input.x11_driver" type="string">synaptics</merge>
-	<!-- Arbitrary options can be passed to the driver using 
-	     the input.x11_options property since xorg-server-1.5. -->
-	<!-- EXAMPLE:
-	<merge key="input.x11_options.LeftEdge" type="string">120</merge>
-	-->
-      </match>
+        <!-- Arbitrary options can be passed to the driver using
+             the input.x11_options property since xorg-server-1.5. -->
+        <!-- EXAMPLE:
+        <merge key="input.x11_options.LeftEdge" type="string">120</merge>
+        -->
     </match>
   </device>
 </deviceinfo>

commit 940a7b1f3e6d04c23a1e5a5e0ccd3ae64c9ea542
Author: Fedor P. Goncharov (Fredy) <fedgo@gorodok.net>
Date:   Sat Nov 29 01:33:22 2008 +0600

    change type of FastTaps option to bool
    
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    (cherry picked from commit 987fb075dba42d9a282bd918985f02cab101d620)

diff --git a/src/synaptics.c b/src/synaptics.c
index 700cb7c..6419607 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -435,7 +435,7 @@ static void set_default_parameters(LocalDevicePtr local)
     pars->tap_move = xf86SetIntOption(opts, "MaxTapMove", tapMove);
     pars->tap_time_2 = xf86SetIntOption(opts, "MaxDoubleTapTime", 180);
     pars->click_time = xf86SetIntOption(opts, "ClickTime", 100);
-    pars->fast_taps = xf86SetIntOption(opts, "FastTaps", FALSE);
+    pars->fast_taps = xf86SetBoolOption(opts, "FastTaps", FALSE);
     pars->emulate_mid_button_time = xf86SetIntOption(opts, "EmulateMidButtonTime", 75);
     pars->emulate_twofinger_z = xf86SetIntOption(opts, "EmulateTwoFingerMinZ", emulateTwoFingerMinZ);
     pars->scroll_dist_vert = xf86SetIntOption(opts, "VertScrollDelta", horizScrollDelta);

commit 2a655cf99933855ae17d550b2481c1d2373d3919
Author: Magnus Kessler <magnus.kessler@gmx.net>
Date:   Wed Dec 3 10:17:54 2008 +1000

    Export synapticsModuleData
    
    Mark synapticsModuleData as exported so that it can be used with xorg-server
    compiled with visibility flags.
    
    Signed-off-by: Magnus Kessler <Magnus.Kessler@gmx.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    (cherry picked from commit 1b941b26db760037965109b5eeeb0e3fb730a805)

diff --git a/src/synaptics.c b/src/synaptics.c
index 15fb636..700cb7c 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -160,7 +160,11 @@ SetupProc(pointer module, pointer options, int *errmaj, int *errmin)
     return module;
 }
 
-XF86ModuleData synapticsModuleData = {&VersionRec, &SetupProc, NULL };
+_X_EXPORT XF86ModuleData synapticsModuleData = {
+    &VersionRec,
+    &SetupProc,
+    NULL
+};
 
 
 /*****************************************************************************

commit bfb264eaccdcaab36d11f937c3592cf26241a929
Author: Batchty <batchman@free.fr>
Date:   Mon Nov 24 11:31:48 2008 +1000

    Stop two-finger scrolling if no finger is present.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    Signed-off-by: Simon Thum <eGore@gmx.de>
    Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
    (cherry picked from commit 13c93be34dfcd0e57b14f86688fd2ad4efda028c)

diff --git a/src/synaptics.c b/src/synaptics.c
index dce2c9c..15fb636 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1671,7 +1671,7 @@ HandleScrolling(SynapticsPrivate *priv, struct SynapticsHwState *hw,
 	    priv->circ_scroll_on = FALSE;
 	}
 
-	if (hw->numFingers < 2) {
+	if (!finger || hw->numFingers < 2) {
 	    if (priv->vert_scroll_twofinger_on) {
 		DBG(7, ErrorF("vert two-finger scroll off\n"));
 		priv->vert_scroll_twofinger_on = FALSE;

commit 9c63952313ecd93770d2eee2580aca69bbe94787
Author: Batchty <batchman@free.fr>
Date:   Sun Nov 23 20:46:14 2008 +0100

    Ignore moves during tap processing if no finger is down.
    
    The Dell Inspiron 1520 with a Synaptics touchpad loves to send event like
    these after every finger release :
    
        time     x    y   z f  w  l r u d m     multi  gl gm gr gdx gdy
       1.563  3224 1625  57 1  5  0 0 0 0 0  00000000   0  0  0   0   0
       1.574  3251 1632  30 1  5  0 0 0 0 0  00000000   0  0  0   0   0
       1.584  3292 1673  10 1  5  0 0 0 0 0  00000000   0  0  0   0   0
       1.594     1 5855   3 2  5  0 0 0 0 0  00000000   0  0  0   0   0
       1.634     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
       1.746     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
       1.897     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
    
    Most of the time these events are ignored by the driver, but sometimes it
    confuses two-finger scrolling and tap detection.
    
    For example, in this log, the first tap is recognized, the second isn't :
    
        time     x    y   z f  w  l r u d m     multi  gl gm gr gdx gdy
      11.597     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
      11.678     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
      11.688     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
      11.709  3862 2406   8 1  5  0 0 0 0 0  00000000   0  0  0   0   0
      11.719  3851 2464  67 1  5  0 0 0 0 0  00000000   0  0  0   0   0
      11.729  3849 2407  35 1  4  0 0 0 0 0  00000000   0  0  0   0   0
      11.739  3858 2578   5 1  9  0 0 0 0 0  00000000   0  0  0   0   0
      11.749  3858 2578   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
      11.850     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
      11.860     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
      12.073     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
      12.083     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
      12.347     1 5855   4 2  5  0 0 0 0 0  00000000   0  0  0   0   0
      12.357  3844 2381  56 1  4  0 0 0 0 0  00000000   0  0  0   0   0
      12.377  3848 2361  32 1  4  0 0 0 0 0  00000000   0  0  0   0   0
      12.388     1 5855   3 2  5  0 0 0 0 0  00000000   0  0  0   0   0
      12.398     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
      12.408     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
      12.428     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
    
    The problem with the second tap is that the driver check if the movement from
    (3848,2361) to (1,5855) is over TapMaxMove before it checks for a finger release.
    So the driver considers it as a (short) finger move.
    Add the condition ''the finger is still present'' to the 'move' condition, so
    we ignore these moves..
    
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    Signed-off-by: Simon Thum <eGore@gmx.de>
    Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
    (cherry picked from commit 6cbdb0a10574d57a563337adb54afdf89996bc36)


Reply to: