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

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: