From 2f36b06fdc2838440139684d17aea4dabe49c1b3 Mon Sep 17 00:00:00 2001 From: Peter Osterlund Date: Sun, 29 Feb 2004 21:02:58 +0100 Subject: Made it possible to use "edge motion" also when not dragging. From Matthias Ihmig . --- README | 19 ++++++++++++++----- synaptics.c | 5 +++-- synaptics.h | 1 + synclient.c | 1 + 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), -- cgit v1.2.3