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

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



 COMPATIBILITY        |    3 +++
 alpscomm.c           |    2 +-
 eventcomm.c          |   16 +++++++++-------
 manpages/synaptics.5 |   20 ++++++++++++++++++++
 ps2comm.c            |    2 +-
 psmcomm.c            |    2 +-
 synaptics.c          |    3 ++-
 synaptics.h          |    1 +
 synclient.c          |    3 ++-
 synproto.h           |    3 ++-
 10 files changed, 42 insertions(+), 13 deletions(-)

New commits:
commit 473912f50ffd2b26bd2f638f9d87f86cf60e2dd6
Author: Peter Osterlund <petero2@telia.com>
Date:   Wed Apr 11 23:33:57 2007 +0200

    Add a config option to prevent the driver from grabbing the event
    device for exclusive use.

diff --git a/alpscomm.c b/alpscomm.c
index e315c1c..822d173 100644
--- a/alpscomm.c
+++ b/alpscomm.c
@@ -72,7 +72,7 @@ ALPS_initialize(int fd)
 }
 
 static void
-ALPSDeviceOnHook(LocalDevicePtr local)
+ALPSDeviceOnHook(LocalDevicePtr local, SynapticsSHM *para)
 {
 }
 
diff --git a/eventcomm.c b/eventcomm.c
index 1b0f8bc..0afa189 100644
--- a/eventcomm.c
+++ b/eventcomm.c
@@ -41,14 +41,16 @@
  ****************************************************************************/
 
 static void
-EventDeviceOnHook(LocalDevicePtr local)
+EventDeviceOnHook(LocalDevicePtr local, SynapticsSHM *para)
 {
-    /* Try to grab the event device so that data don't leak to /dev/input/mice */
-    int ret;
-    SYSCALL(ret = ioctl(local->fd, EVIOCGRAB, (pointer)1));
-    if (ret < 0) {
-	xf86Msg(X_WARNING, "%s can't grab event device, errno=%d\n",
-		local->name, errno);
+    if (para->grab_event_device) {
+	/* Try to grab the event device so that data don't leak to /dev/input/mice */
+	int ret;
+	SYSCALL(ret = ioctl(local->fd, EVIOCGRAB, (pointer)1));
+	if (ret < 0) {
+	    xf86Msg(X_WARNING, "%s can't grab event device, errno=%d\n",
+		    local->name, errno);
+	}
     }
 }
 
diff --git a/manpages/synaptics.5 b/manpages/synaptics.5
index ce44f98..4954402 100644
--- a/manpages/synaptics.5
+++ b/manpages/synaptics.5
@@ -324,6 +324,26 @@ Coasting threshold scrolling speed.
 .TP
 \fBSingleTapTimeout\fR (Integer)
 Timeout after a tap to recognize it as a single tap.
+.TP
+\fBGrabEventDevice\fR (Bool)
+If GrabEventDevice is true, the driver will grab the event device for
+exclusive use when using the linux 2.6 event protocol.
+.
+When using other protocols, this option has no effect.
+.
+Grabbing the event device means that no other user space or kernel
+space program sees the touchpad events. 
+.
+This is desirable if the X config file includes /dev/input/mice as an
+input device, but is undesirable if you want to monitor the device
+from user space.
+.
+When changing this parameter with the synclient program, the change
+will not take effect until the synaptics driver is disabled and
+reenabled. 
+.
+This can be achieved by switching to a text console and then switching
+back to X.
 .
 .
 .LP
diff --git a/ps2comm.c b/ps2comm.c
index 3defd56..fe1b929 100644
--- a/ps2comm.c
+++ b/ps2comm.c
@@ -433,7 +433,7 @@ ps2_print_ident(const struct SynapticsHwInfo *synhw)
 
 
 static void
-PS2DeviceOnHook(LocalDevicePtr local)
+PS2DeviceOnHook(LocalDevicePtr local, SynapticsSHM* para)
 {
 }
 
diff --git a/psmcomm.c b/psmcomm.c
index 257ec13..125ccd6 100644
--- a/psmcomm.c
+++ b/psmcomm.c
@@ -89,7 +89,7 @@ PSMQueryIsSynaptics(LocalDevicePtr local)
 }
 
 static void
-PSMDeviceOnHook(LocalDevicePtr local)
+PSMDeviceOnHook(LocalDevicePtr local, SynapticsSHM *para)
 {
 }
 
diff --git a/synaptics.c b/synaptics.c
index 4659b48..df71de8 100644
--- a/synaptics.c
+++ b/synaptics.c
@@ -430,6 +430,7 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
     pars->coasting_speed = synSetFloatOption(opts, "CoastingSpeed", 0.0);
     pars->press_motion_min_factor = synSetFloatOption(opts, "PressureMotionMinFactor", 1.0);
     pars->press_motion_max_factor = synSetFloatOption(opts, "PressureMotionMaxFactor", 1.0);
+    pars->grab_event_device = xf86SetBoolOption(opts, "GrabEventDevice", TRUE);
 
     /* Warn about (and fix) incorrectly configured TopEdge/BottomEdge parameters */
     if (pars->top_edge > pars->bottom_edge) {
@@ -555,7 +556,7 @@ DeviceOn(DeviceIntPtr dev)
 	return !Success;
     }
 
-    priv->proto_ops->DeviceOnHook(local);
+    priv->proto_ops->DeviceOnHook(local, priv->synpara);
 
     priv->comm.buffer = XisbNew(local->fd, 64);
     if (!priv->comm.buffer) {
diff --git a/synaptics.h b/synaptics.h
index 1f9f8ba..0e56adb 100644
--- a/synaptics.h
+++ b/synaptics.h
@@ -100,6 +100,7 @@ typedef struct _SynapticsSHM
     int press_motion_max_z;		    /* finger pressure at which maximum pressure motion factor is applied */
     double press_motion_min_factor;	    /* factor applied on speed when finger pressure is at minimum */
     double press_motion_max_factor; 	    /* factor applied on speed when finger pressure is at minimum */
+    Bool grab_event_device;		    /* grab event device for exclusive use? */
 } SynapticsSHM;
 
 /*
diff --git a/synclient.c b/synclient.c
index 6306d47..bf8b5d9 100644
--- a/synclient.c
+++ b/synclient.c
@@ -105,7 +105,8 @@ static struct Parameter params[] = {
     DEFINE_PAR("PressureMotionMinZ",   press_motion_min_z,      PT_INT,    1, 255),
     DEFINE_PAR("PressureMotionMaxZ",   press_motion_max_z,      PT_INT,    1, 255),
     DEFINE_PAR("PressureMotionMinFactor", press_motion_min_factor, PT_DOUBLE, 0, 10.0),
-    DEFINE_PAR("PressureMotionMaxFactor", press_motion_max_factor, PT_DOUBLE, 0, 10.0), 
+    DEFINE_PAR("PressureMotionMaxFactor", press_motion_max_factor, PT_DOUBLE, 0, 10.0),
+    DEFINE_PAR("GrabEventDevice",      grab_event_device,       PT_BOOL,   0, 1),
     { 0, 0, 0, 0, 0 }
 };
 
diff --git a/synproto.h b/synproto.h
index ecc4357..ebb44f3 100644
--- a/synproto.h
+++ b/synproto.h
@@ -72,11 +72,12 @@ enum SynapticsProtocol {
     SYN_PROTO_ALPS		/* ALPS touchpad protocol */
 };
 
+struct _SynapticsSHM;
 struct SynapticsHwInfo;
 struct CommData;
 
 struct SynapticsProtocolOperations {
-    void (*DeviceOnHook)(LocalDevicePtr local);
+    void (*DeviceOnHook)(LocalDevicePtr local, struct _SynapticsSHM *para);
     void (*DeviceOffHook)(LocalDevicePtr local);
     Bool (*QueryHardware)(LocalDevicePtr local, struct SynapticsHwInfo *synhw);
     Bool (*ReadHwState)(LocalDevicePtr local, struct SynapticsHwInfo *synhw,

commit 1b258685118a39555616a7b3d08544162790850d
Author: Peter Osterlund <petero2@telia.com>
Date:   Sat Apr 7 09:23:00 2007 +0200

    Added "Acer Aspire 9301AWSMi" to the compatibility list.
    (From MrPope <mrpope@wimpy.kicks-ass.net>.)

diff --git a/COMPATIBILITY b/COMPATIBILITY
index f5c5aaa..bb3942b 100644
--- a/COMPATIBILITY
+++ b/COMPATIBILITY
@@ -11,6 +11,7 @@ Acer Aspire 3003WLMi
 Acer Aspire 3023
 Acer Aspire 5670
 Acer Aspire 5672
+Acer Aspire 9301AWSMi
 Acer Extensa 3001 WLMi
 Acer Ferrari 3000LMi
 Acer Ferrari 3200

commit 0316b51286aae93c19d14bc3e54741e1dfadf34d
Author: Peter Osterlund <petero2@telia.com>
Date:   Mon Mar 12 22:25:05 2007 +0100

    Added "Toshiba Tecra A8" to the compatibility list.
    (From Pieter Lauwers <pieter.lauwers@newtec.eu>.)

diff --git a/COMPATIBILITY b/COMPATIBILITY
index 45fbade..f5c5aaa 100644
--- a/COMPATIBILITY
+++ b/COMPATIBILITY
@@ -297,5 +297,6 @@ Toshiba Satellite Pro 2100	(ALPS touchpad)
 Toshiba Satellite S3000-514	(ALPS touchpad)
 Toshiba Tecra A3		(ALPS touchpad)
 Toshiba Tecra A4
+Toshiba Tecra A8
 Toshiba Tecra M2		(ALPS touchpad)
 Vobis Highscreen XI 14-C1200	(Same as Yakumo Q5M 1.2GHz)

commit fe9f6d7915aac1860b6d00d74daf297e7ff3a283
Author: Peter Osterlund <petero2@telia.com>
Date:   Mon Mar 12 22:24:19 2007 +0100

    Added "Toshiba Satellite S3000-514" to the compatibility list.
    (From Stéphane <schevalier@club-internet.fr>.)

diff --git a/COMPATIBILITY b/COMPATIBILITY
index 9c7b711..45fbade 100644
--- a/COMPATIBILITY
+++ b/COMPATIBILITY
@@ -294,6 +294,7 @@ Toshiba Satellite A75-S209	(ALPS touchpad)
 Toshiba Satellite M30
 Toshiba Satellite P25-607
 Toshiba Satellite Pro 2100	(ALPS touchpad)
+Toshiba Satellite S3000-514	(ALPS touchpad)
 Toshiba Tecra A3		(ALPS touchpad)
 Toshiba Tecra A4
 Toshiba Tecra M2		(ALPS touchpad)



Reply to: