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: