xserver-xorg-input-synaptics: Changes to 'debian-experimental'
.gitignore | 1
INSTALL | 106 ++++++++
Makefile.am | 4
configure.ac | 8
debian/changelog | 3
debian/rules | 2
fdi/11-x11-synaptics.fdi | 13 -
include/Makefile.am | 4
include/synaptics-properties.h | 142 +++++++++++
include/synaptics.h | 1
man/synaptics.man | 39 ++-
src/Makefile.am | 3
src/alpscomm.c | 3
src/eventcomm.c | 137 +++++++---
src/properties.c | 522 +++++++++++++++++++++++++++++++++++++++++
src/ps2comm.c | 3
src/psmcomm.c | 3
src/psmcomm.h | 2
src/synaptics.c | 491 +++++++++++++++++++++++++-------------
src/synapticsstr.h | 13 -
src/synproto.h | 1
tools/synclient.c | 6
tools/syndaemon.c | 21 +
xorg-synaptics.pc.in | 6
24 files changed, 1296 insertions(+), 238 deletions(-)
New commits:
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 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)
diff --git a/src/synaptics.c b/src/synaptics.c
index df29358..dce2c9c 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1249,7 +1249,7 @@ HandleTapProcessing(SynapticsPrivate *priv, struct SynapticsHwState *hw,
release = !finger && priv->finger_state;
move = ((priv->tap_max_fingers <= ((priv->horiz_scroll_twofinger_on || priv->vert_scroll_twofinger_on)? 2 : 1)) &&
((abs(hw->x - priv->touch_on.x) >= para->tap_move) ||
- (abs(hw->y - priv->touch_on.y) >= para->tap_move)));
+ (abs(hw->y - priv->touch_on.y) >= para->tap_move)) && finger);
if (touch) {
priv->touch_on.x = hw->x;
commit 34e200e8dceecd09654d84a1464a6b085b685225
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date: Fri Nov 21 16:52:03 2008 +1000
fdi: make use of hal's contains_outof matcher to reduce duplication.
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Christoph Brill <egore911@egore911.de>
(cherry picked from commit fbcb056ea5a2fdb178c945098f55ef564e4fa5ac)
diff --git a/fdi/11-x11-synaptics.fdi b/fdi/11-x11-synaptics.fdi
index 2cc5a5a..5614149 100644
--- a/fdi/11-x11-synaptics.fdi
+++ b/fdi/11-x11-synaptics.fdi
@@ -2,7 +2,7 @@
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
- <match key="info.product" contains="Synaptics 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. -->
@@ -10,15 +10,6 @@
<merge key="input.x11_options.LeftEdge" type="string">120</merge>
-->
</match>
- <match key="info.product" contains="AlpsPS/2 ALPS">
- <merge key="input.x11_driver" type="string">synaptics</merge>
- </match>
- <match key="info.product" contains="appletouch">
- <merge key="input.x11_driver" type="string">synaptics</merge>
- </match>
- <match key="info.product" contains="bcm5974">
- <merge key="input.x11_driver" type="string">synaptics</merge>
- </match>
</match>
</device>
</deviceinfo>
commit 631e876ba6aa122aa980676c7a70268b4302a02a
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date: Fri Nov 14 10:46:39 2008 +1000
synaptics 1.0 RC 1
diff --git a/configure.ac b/configure.ac
index 69f1041..15ebb4a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-input-synaptics],
- 0.15.2,
+ 0.99.1,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-input-synaptics)
commit 72d9bca079f40a705de5059eeea260b289d77e84
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date: Tue Nov 11 09:53:17 2008 +1000
Remove ALPS special options treatment.
Don't overwrite options set earlier based on a strstr(name, "ALPS"). If
anything, the driver should just autoscale to the correct settings anyway.
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
diff --git a/src/eventcomm.c b/src/eventcomm.c
index 620f2f3..c917c80 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -205,24 +205,6 @@ EventQueryHardware(LocalDevicePtr local, struct SynapticsHwInfo *synhw)
xf86Msg(X_PROBED, "%s touchpad found\n", local->name);
- /* awful */
- if (strstr(local->name, "ALPS")) {
- SynapticsSHM *pars = ((SynapticsPrivate *)local->private)->synpara;
- void *opts = local->options;
-
- pars->left_edge = xf86SetIntOption(opts, "LeftEdge", 120);
- pars->right_edge = xf86SetIntOption(opts, "RightEdge", 830);
- pars->top_edge = xf86SetIntOption(opts, "TopEdge", 120);
- pars->bottom_edge = xf86SetIntOption(opts, "BottomEdge", 650);
- pars->finger_low = xf86SetIntOption(opts, "FingerLow", 14);
- pars->finger_high = xf86SetIntOption(opts, "FingerHigh", 15);
- pars->tap_move = xf86SetIntOption(opts, "MaxTapMove", 110);
- pars->scroll_dist_vert = xf86SetIntOption(opts, "VertScrollDelta", 20);
- pars->scroll_dist_horiz = xf86SetIntOption(opts, "HorizScrollDelta", 20);
- pars->min_speed = xf86SetRealOption(opts, "MinSpeed", 0.3);
- pars->max_speed = xf86SetRealOption(opts, "MaxSpeed", 0.75);
- }
-
return TRUE;
}
commit 471552a62e0e5ba2a274196aef62d984b83f30e6
Author: Henrik Rydberg <rydberg@euromail.se>
Date: Tue Oct 28 21:57:02 2008 +0100
Only respect MaxTapMove when appropriate
Only respect MaxTapMove with one or two fingers, and the latter only when two-finger scrolling
is enabled. (LP: #270002)
Original-Author: William Grant <william.grant@ubuntu.org.au>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
diff --git a/src/synaptics.c b/src/synaptics.c
index c3db2be..df29358 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1247,7 +1247,8 @@ HandleTapProcessing(SynapticsPrivate *priv, struct SynapticsHwState *hw,
touch = finger && !priv->finger_state;
release = !finger && priv->finger_state;
- move = (((abs(hw->x - priv->touch_on.x) >= para->tap_move) ||
+ move = ((priv->tap_max_fingers <= ((priv->horiz_scroll_twofinger_on || priv->vert_scroll_twofinger_on)? 2 : 1)) &&
+ ((abs(hw->x - priv->touch_on.x) >= para->tap_move) ||
(abs(hw->y - priv->touch_on.y) >= para->tap_move)));
if (touch) {
commit 629e7345dc40c1eb0acf8a69c267711d35d4f3e3
Author: Christoph Brill <egore911@egore911.de>
Date: Thu Oct 30 23:43:13 2008 +0100
Revert "[syndaemon] use Xrecord extension in syndaemon to avoid polling."
This reverts commit 641b26da531b38313ecc68badac1a3ccfd6fc7af.
As requested by Peter Hutterer and Henrik Rydberg.
diff --git a/configure.ac b/configure.ac
index 23c9f26..69f1041 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,9 +22,9 @@
AC_PREREQ(2.57)
AC_INIT([xf86-input-synaptics],
- 0.15.2,
- [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
- xf86-input-synaptics)
+ 0.15.2,
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+ xf86-input-synaptics)
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_AUX_DIR(.)
@@ -90,10 +90,10 @@ fi
#fi
AC_ARG_WITH(xorg-module-dir,
- AC_HELP_STRING([--with-xorg-module-dir=DIR],
- [Default xorg module directory [[default=$libdir/xorg/modules]]]),
- [moduledir="$withval"],
- [moduledir="$libdir/xorg/modules"])
+ AC_HELP_STRING([--with-xorg-module-dir=DIR],
+ [Default xorg module directory [[default=$libdir/xorg/modules]]]),
+ [moduledir="$withval"],
+ [moduledir="$libdir/xorg/modules"])
inputdir=${moduledir}/input
AC_SUBST(inputdir)
@@ -111,7 +111,6 @@ AC_SUBST([CFLAGS])
# Checks for libraries.
PKG_CHECK_MODULES(XLIB, x11) # needed for syndaemon
-PKG_CHECK_MODULES(XRECORD, xtst, AC_DEFINE([HAVE_XRECORD],[],[Use XRecord]), true)
# Checks for header files.
AC_HEADER_STDC
@@ -120,9 +119,9 @@ XORG_MANPAGE_SECTIONS
XORG_RELEASE_VERSION
AC_OUTPUT([Makefile
- src/Makefile
- man/Makefile
- tools/Makefile
- fdi/Makefile
- include/Makefile
- xorg-synaptics.pc])
+ src/Makefile
+ man/Makefile
+ tools/Makefile
+ fdi/Makefile
+ include/Makefile
+ xorg-synaptics.pc])
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 2f2199b..a83da60 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -28,4 +28,4 @@ synclient_SOURCES = synclient.c
synclient_LDFLAGS = -lm
syndaemon_SOURCES = syndaemon.c
-syndaemon_LDFLAGS = $(XLIB_LIBS) $(XRECORD_LIBS)
+syndaemon_LDFLAGS = $(XLIB_LIBS)
diff --git a/tools/syndaemon.c b/tools/syndaemon.c
index d4cfd4c..7aa8238 100644
--- a/tools/syndaemon.c
+++ b/tools/syndaemon.c
@@ -29,9 +29,6 @@
#endif
#include <X11/Xlib.h>
-#include <X11/Xproto.h>
-#include <X11/extensions/record.h>
-
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
@@ -48,7 +45,6 @@ static SynapticsSHM *synshm;
static int pad_disabled;
static int disable_taps_only;
static int ignore_modifier_combos;
-static int ignore_modifier_keys = 0;
static int background;
static const char *pid_file;
@@ -68,7 +64,6 @@ usage(void)
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, " -R Don't use the XRecord extension.\n");
exit(1);
}
@@ -171,7 +166,7 @@ touchpad_buttons_active(void)
if (synshm->multi[i])
return 1;
if (synshm->guest_left || synshm->guest_mid || synshm->guest_right)
- return 1;
+ return 1;
return 0;
}
@@ -248,194 +243,6 @@ setup_keyboard_mask(Display *display, int ignore_modifier_keys)
}
}
-/* ---- the following code is for using the xrecord extension ----- */
-#ifdef HAVE_XRECORD
-
-#define MAX_MODIFIERS 16
-
-/* used for exchanging information with the callback function */
-struct xrecord_callback_results {
- XModifierKeymap *modifiers;
- Bool key_event;
- Bool non_modifier_event;
- KeyCode pressed_modifiers[MAX_MODIFIERS];
-};
-
-/* test if the xrecord extension is found */
-Bool check_xrecord(Display *display) {
-
- Bool found;
- Status status;
- int major_opcode, minor_opcode, first_error;
- int version[2];
-
- found = XQueryExtension(display,
- "RECORD",
- &major_opcode,
- &minor_opcode,
- &first_error);
-
- status = XRecordQueryVersion(display, version, version+1);
- if (!background && status) {
- printf("X RECORD extension version %d.%d\n", version[0], version[1]);
- }
- return found;
-}
-
-/* called by XRecordProcessReplies() */
-void xrecord_callback( XPointer closure, XRecordInterceptData* recorded_data) {
-
- struct xrecord_callback_results *cbres;
- xEvent *xev;
- int nxev;
-
- cbres = (struct xrecord_callback_results *)closure;
- /*printf("something happend, category=%d\n", recorded_data->category); */
-
- if (recorded_data->category != XRecordFromServer) {
- XRecordFreeData(recorded_data);
- return;
- }
-
- nxev = recorded_data->data_len / 8;
- xev = (xEvent *)recorded_data->data;
- while(nxev--) {
-
- if ( (xev->u.u.type == KeyPress) || (xev->u.u.type == KeyRelease)) {
- int i;
- int is_modifier = 0;
-
- cbres->key_event = 1; /* remember, a key was pressed. */
-
- /* test if it was a modifier */
- for (i = 0; i < 8 * cbres->modifiers->max_keypermod; i++) {
- KeyCode kc = cbres->modifiers->modifiermap[i];
-
- if (kc == xev->u.u.detail) {
- is_modifier = 1; /* yes, it is a modifier. */
- break;
- }
- }
-
- if (is_modifier) {
- if (xev->u.u.type == KeyPress) {
- for (i=0; i < MAX_MODIFIERS; ++i)
- if (!cbres->pressed_modifiers[i]) {
- cbres->pressed_modifiers[i] = xev->u.u.detail;
- break;
- }
- } else { /* KeyRelease */
- for (i=0; i < MAX_MODIFIERS; ++i)
- if (cbres->pressed_modifiers[i] == xev->u.u.detail)
- cbres->pressed_modifiers[i] = 0;
- }
-
- } else {
- /* remember, a non-modifier was pressed. */
- cbres->non_modifier_event = 1;
- }
- }
-
- xev++;
- }
-
- XRecordFreeData(recorded_data); /* cleanup */
-}
-
-static int is_modifier_pressed(const struct xrecord_callback_results *cbres) {
- int i;
-
- for (i = 0; i < MAX_MODIFIERS; ++i)
- if (cbres->pressed_modifiers[i])
- return 1;
-
- return 0;
-}
-
-void record_main_loop(Display* display, double idle_time) {
-
- struct xrecord_callback_results cbres;
- XRecordContext context;
- XRecordClientSpec cspec = XRecordAllClients;
- Display *dpy_data;
- XRecordRange *range;
- int i;
-
- pad_disabled = 0;
-
- dpy_data = XOpenDisplay(NULL); /* we need an additional data connection. */
- range = XRecordAllocRange();
-
- range->device_events.first = KeyPress;
- range->device_events.last = KeyRelease;
-
- context = XRecordCreateContext(dpy_data, 0,
- &cspec,1,
- &range, 1);
-
- XRecordEnableContextAsync(dpy_data, context, xrecord_callback, (XPointer)&cbres);
-
- cbres.modifiers = XGetModifierMapping(display);
- /* clear list of modifiers */
- for (i = 0; i < MAX_MODIFIERS; ++i)
- cbres.pressed_modifiers[i] = 0;
-
- while (1) {
-
- int fd = ConnectionNumber(dpy_data);
- fd_set read_fds;
- int ret;
- int disable_event = 0;
- struct timeval timeout;
-
- FD_ZERO(&read_fds);
- FD_SET(fd, &read_fds);
-
- ret = select(fd+1, &read_fds, NULL, NULL,
- pad_disabled ? &timeout : NULL /* timeout only required for enabling */ );
-
- if (FD_ISSET(fd, &read_fds)) {
-
- cbres.key_event = 0;
- cbres.non_modifier_event = 0;
-
- XRecordProcessReplies(dpy_data);
-
- if (!ignore_modifier_keys && cbres.key_event) {
- disable_event = 1;
- }
-
- if (cbres.non_modifier_event &&
- !(ignore_modifier_combos && is_modifier_pressed(&cbres)) ) {
- disable_event = 1;
- }
- }
-
- if (disable_event) {
- /* adjust the enable_time */
- timeout.tv_sec = (int)idle_time;
- timeout.tv_usec = (idle_time-(double)timeout.tv_sec) * 100000.;
-
- if (!pad_disabled) {
- pad_disabled=1;
- if (!background) printf("disable touchpad\n");
-
- if (!synshm->touchpad_off)
- synshm->touchpad_off = disable_taps_only ? 2 : 1;
- }
- }
-
- if (ret == 0 && pad_disabled) { /* timeout => enable event */
- enable_touchpad();
- if (!background) printf("enable touchpad\n");
- }
-
- } /* end while(1) */
-
- XFreeModifiermap(cbres.modifiers);
-}
-#endif // HAVE_XRECORD
-
int
main(int argc, char *argv[])
{
@@ -444,11 +251,10 @@ main(int argc, char *argv[])
Display *display;
int c;
int shmid;
- int use_xrecord = 1;
-
+ int ignore_modifier_keys = 0;
/* Parse command line parameters */
- while ((c = getopt(argc, argv, "i:m:dtp:kKR?")) != EOF) {
+ while ((c = getopt(argc, argv, "i:m:dtp:kK?")) != EOF) {
switch(c) {
case 'i':
idle_time = atof(optarg);
@@ -472,9 +278,6 @@ main(int argc, char *argv[])
ignore_modifier_combos = 1;
ignore_modifier_keys = 1;
break;
- case 'R':
- use_xrecord = 0;
- break;
default:
usage();
break;
@@ -530,16 +333,11 @@ main(int argc, char *argv[])
fclose(fd);
}
}
-#ifdef HAVE_XRECORD
- if (use_xrecord && check_xrecord(display)) {
- record_main_loop(display, idle_time);
- } else
-#endif HAVE_XRECORD
- {
- setup_keyboard_mask(display, ignore_modifier_keys);
-
- /* Run the main loop */
- main_loop(display, idle_time, poll_delay);
- }
+
+ setup_keyboard_mask(display, ignore_modifier_keys);
+
+ /* Run the main loop */
+ main_loop(display, idle_time, poll_delay);
+
return 0;
}
commit e52a031ac79350e7ff3a9aeb2db4c2ae2d6a8059
Author: Christoph Brill <egore911@egore911.de>
Date: Thu Oct 30 23:42:44 2008 +0100
Revert "[syndaemon] switch over to input properties"
This reverts commit 934bc0012f948c52aadc8eda912f7728fb7394a2.
As requested by Peter Hutterer.
diff --git a/configure.ac b/configure.ac
index 5727881..23c9f26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -110,7 +110,7 @@ CFLAGS="$CFLAGS $XORG_CFLAGS "' -I$(top_srcdir)/src'
AC_SUBST([CFLAGS])
# Checks for libraries.
-PKG_CHECK_MODULES(XLIB, x11 xi) # needed for syndaemon
+PKG_CHECK_MODULES(XLIB, x11) # needed for syndaemon
PKG_CHECK_MODULES(XRECORD, xtst, AC_DEFINE([HAVE_XRECORD],[],[Use XRecord]), true)
Reply to: