summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Osterlund <petero2@telia.com>2004-02-29 21:02:58 +0100
committerPeter Osterlund <petero2@telia.com>2006-04-09 04:01:51 +0200
commit2f36b06fdc2838440139684d17aea4dabe49c1b3 (patch)
tree0e6e6f2fed522ac44815fc86c4027faa31d8c7df
parent661c08dca83b7413cab6f2ac3c3a3f097b975234 (diff)
Made it possible to use "edge motion" also when not
dragging. From Matthias Ihmig <m.ihmig@gmx.net>.
-rw-r--r--README19
-rw-r--r--synaptics.c5
-rw-r--r--synaptics.h1
-rw-r--r--synclient.c1
4 files changed, 19 insertions, 7 deletions
diff --git a/README b/README
index c0bb792..f18f924 100644
--- a/README
+++ b/README
@@ -83,6 +83,8 @@ EdgeMotionMinZ Int finger pressure at which minimum edge motion speed is set
EdgeMotionMaxZ Int finger pressure at which maximum edge motion speed is set
EdgeMotionMinSpeed Int slowest setting for edge motion speed
EdgeMotionMaxSpeed Int fastest setting for edge motion speed
+EdgeMotionUseAlways Bool If on, edge motion is also used for normal movements,
+ if off, egde motion is used only when dragging
Repeater String repeater device
MinSpeed Float min. Speed factor
MaxSpeed Float max. Speed factor
@@ -136,11 +138,17 @@ The MinSpeed, MaxSpeed and AccelFactor parameters don't have any
effect on scrolling speed. Scrolling speed is determined solely from
the VertScrollDelta and HorizScrollDelta parameters.
-Edge motion speed is calculated by taking into account the amount of pressure
-applied to the touchpad. The sensitivity can be adjusted using the EdgeMotion
-parameters. If the pressure is below EdgeMotionMinZ, EdgeMotionMinSpeed is used,
-and if the pressure is greater than EdgeMotionMaxZ, EdgeMotionMaxSpeed is used.
-For a pressure value between EdgeMotionMinZ and EdgeMotionMaxZ, the speed is
+When hitting an egde, movement can be automatically continued.
+If EdgeMotionUseAlways is false, edge motion is only used when
+dragging. With EdgeMotionUseAlways set to true, it is also used for
+normal cursor movements.
+
+Edge motion speed is calculated by taking into account the amount of
+pressure applied to the touchpad. The sensitivity can be adjusted
+using the EdgeMotion parameters. If the pressure is below
+EdgeMotionMinZ, EdgeMotionMinSpeed is used, and if the pressure is
+greater than EdgeMotionMaxZ, EdgeMotionMaxSpeed is used. For a
+pressure value between EdgeMotionMinZ and EdgeMotionMaxZ, the speed is
increased linearly.
Since synaptics touchpads don't have a button that corresponds to the
@@ -158,6 +166,7 @@ counter clockwise scroll up events. Lifting your finger will disengage
circular scrolling. Use tight circles near the center of the pad for
fast scrolling and large circles for better control.
+
FAQ
---
diff --git a/synaptics.c b/synaptics.c
index 6c32900..14b9784 100644
--- a/synaptics.c
+++ b/synaptics.c
@@ -335,6 +335,7 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
priv->synpara->edge_motion_max_z = xf86SetIntOption(local->options, "EdgeMotionMaxZ", 160);
priv->synpara->edge_motion_min_speed = xf86SetIntOption(local->options, "EdgeMotionMinSpeed", 1);
priv->synpara->edge_motion_max_speed = xf86SetIntOption(local->options, "EdgeMotionMaxSpeed", 200);
+ priv->synpara->edge_motion_use_always = xf86SetBoolOption(local->options, "EdgeMotionUseAlways", FALSE);
priv->synpara->repeater = xf86SetStrOption(local->options, "Repeater", NULL);
priv->synpara->updown_button_scrolling = xf86SetBoolOption(local->options, "UpDownScrolling", TRUE);
priv->synpara->touchpad_off = xf86SetBoolOption(local->options, "TouchpadOff", FALSE);
@@ -1144,7 +1145,7 @@ HandleState(LocalDevicePtr local, struct SynapticsHwState* hw)
dx = (hw->x - MOVE_HIST(2).x) / 2;
dy = (hw->y - MOVE_HIST(2).y) / 2;
- if (priv->drag || priv->draglock) {
+ if (priv->drag || priv->draglock || para->edge_motion_use_always) {
int minZ = para->edge_motion_min_z;
int maxZ = para->edge_motion_max_z;
int minSpd = para->edge_motion_min_speed;
@@ -1170,7 +1171,7 @@ HandleState(LocalDevicePtr local, struct SynapticsHwState* hw)
}
}
- /* speed in depence of distance/packet */
+ /* speed depending on distance/packet */
dist = move_distance( dx, dy );
speed = dist * para->accl;
if (speed > para->max_speed) { /* set max speed factor */
diff --git a/synaptics.h b/synaptics.h
index c1fbe47..0c21628 100644
--- a/synaptics.h
+++ b/synaptics.h
@@ -53,6 +53,7 @@ typedef struct _SynapticsSHM
int edge_motion_max_z; /* finger pressure at which maximum edge motion speed is set */
int edge_motion_min_speed; /* slowest setting for edge motion speed */
int edge_motion_max_speed; /* fastest setting for edge motion speed */
+ Bool edge_motion_use_always; /* If false, egde motion is used only when dragging */
char* repeater; /* Repeater on or off */
Bool updown_button_scrolling; /* Up/Down-Button scrolling or middle/double-click */
diff --git a/synclient.c b/synclient.c
index 0bed07b..8146264 100644
--- a/synclient.c
+++ b/synclient.c
@@ -83,6 +83,7 @@ static struct Parameter params[] = {
DEFINE_PAR("EdgeMotionMaxZ", edge_motion_max_z, PT_INT, 1, 255),
DEFINE_PAR("EdgeMotionMinSpeed", edge_motion_min_speed, PT_INT, 0, 500),
DEFINE_PAR("EdgeMotionMaxSpeed", edge_motion_max_speed, PT_INT, 0, 500),
+ DEFINE_PAR("EdgeMotionUseAlways", edge_motion_use_always, PT_BOOL, 0, 1),
DEFINE_PAR("UpDownScrolling", updown_button_scrolling, PT_BOOL, 0, 1),
DEFINE_PAR("TouchpadOff", touchpad_off, PT_BOOL, 0, 1),
DEFINE_PAR("LockedDrags", locked_drags, PT_BOOL, 0, 1),