I have a Lenovo laptop with a trackpoint and a touchpad.  I much
prefer the trackpoint for moving the cursor, but the touchpad is
handy for two-finger scrolling.  The Windows driver allows a mode
with gestures only on the touchpad; add such a mode in Linux too.
(Leaving the touchpad fully enabled is no good; palm detection is
spotty at best.)

Signed-off-by: Andy Lutomirski <[email protected]>
---
I'm a little surprised that this apparently can't be done in the XI2
core.  Is there a better way?

 man/synaptics.man | 1 +
 src/properties.c  | 2 +-
 src/synaptics.c   | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/man/synaptics.man b/man/synaptics.man
index 03f18ac..5f9702a 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -228,6 +228,7 @@ l l.
 0      Touchpad is enabled
 1      Touchpad is switched off
 2      Only tapping and scrolling is switched off
+3      Only pointer motion is switched off
 .TE
 Property: "Synaptics Off"
 .TP
diff --git a/src/properties.c b/src/properties.c
index dd88fc7..cbaf480 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -526,7 +526,7 @@ SetProperty(DeviceIntPtr dev, Atom property, 
XIPropertyValuePtr prop,
 
         off = *(CARD8 *) prop->data;
 
-        if (off > 2)
+        if (off > 3)
             return BadValue;
 
         para->touchpad_off = off;
diff --git a/src/synaptics.c b/src/synaptics.c
index 29e551a..fff4ba1 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2866,7 +2866,7 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState 
*hw, CARD32 now,
     }
 
     /* Post events */
-    if (finger >= FS_TOUCHED && (dx || dy))
+    if (finger >= FS_TOUCHED && (dx || dy)  && para->touchpad_off != 3)
         xf86PostMotionEvent(pInfo->dev, 0, 0, 2, dx, dy);
 
     if (priv->mid_emu_state == MBE_LEFT_CLICK) {
-- 
1.8.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to