summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-08-03 11:07:51 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-08-03 11:09:09 +1000
commitaf963fd0c38b397365ce83a8796bbade751a8371 (patch)
tree86e4f9a50ceeafbaa659c751ebd2f2bf5be7f6df
parentb46ea23ab9f8db40880d294733debbe7a5ebcab7 (diff)
Remove the "SpecialScrollAreaRight" option. (#21001)
This option auto-adjusts the right edge on the touchpad but wrongly so. It does not take the edge width into account, thus setting the right edge to the max value received - leaving only a single-pixel scroll area in some cases. A previous attempt to auto-adjust edges has failed (afb60a0b). The kernel's min/max values cannot be relied on for actual range clipping and thus scroll edge settings are best left untouched. X.Org Bug 21001 <http://bugs.freedesktop.org/show_bug.cgi?id=21001> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 1d89e2f632cf6c702ae5002f81e5783f3ba1b9ae) The parameter is not removed from the SHM area to maintain the correct size. The driver itself however doesn't read from it anymore. Conflicts: src/synaptics.c src/synapticsstr.h
-rw-r--r--man/synaptics.man10
-rw-r--r--src/synaptics.c25
-rw-r--r--src/synapticsstr.h1
3 files changed, 3 insertions, 33 deletions
diff --git a/man/synaptics.man b/man/synaptics.man
index 2d4be40..c3429d7 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -99,9 +99,7 @@ option is not needed with synaptics 1.0 or later. See section
X coordinate for left edge. Property: "Synaptics Edges"
.TP 7
.BI "Option \*qRightEdge\*q \*q" integer \*q
-X coordinate for right edge. If this option is set,
-.BI SpecialScrollAreaRight
-is ignored. Property: "Synaptics Edges"
+X coordinate for right edge. Property: "Synaptics Edges"
.TP 7
.BI "Option \*qTopEdge\*q \*q" integer \*q
Y coordinate for top edge. Property: "Synaptics Edges"
@@ -109,10 +107,6 @@ Y coordinate for top edge. Property: "Synaptics Edges"
.BI "Option \*qBottomEdge\*q \*q" integer \*q
Y coordinate for bottom edge. Property: "Synaptics Edges"
.TP 7
-.BI "Option \*qSpecialScrollAreaRight\*q \*q" boolean \*q
-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
release. Property: "Synaptics Finger"
@@ -826,6 +820,8 @@ The following options are no longer part of the driver configuration:
.BI "Option \*qRepeater\*q \*q" string \*q
.TP
.BI "Option \*qHistorySize\*q \*q" integer \*q
+.TP
+.BI "Option \*qSpecialScrollAreaRight\*q \*q" boolean \*q
.SH "AUTHORS"
.LP
diff --git a/src/synaptics.c b/src/synaptics.c
index fdd7790..20093c2 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -452,11 +452,6 @@ 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);
- 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);
@@ -600,8 +595,6 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
set_default_parameters(local);
- priv->largest_valid_x = MIN(priv->synpara_default.right_edge, XMAX_NOMINAL);
-
if (!alloc_param_data(local))
goto SetupProc_fail;
@@ -2004,24 +1997,6 @@ HandleState(LocalDevicePtr local, struct SynapticsHwState *hw)
hw->multi[2] = hw->multi[3] = FALSE;
}
- /*
- * Some touchpads have a scroll wheel region where a very large X
- * 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 {
- 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);
finger = SynapticsDetectFinger(priv, hw);
diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index d5a3f91..8b8df9c 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -105,7 +105,6 @@ typedef struct _SynapticsPrivateRec
SynapticsMoveHistRec move_hist[SYNAPTICS_MOVE_HISTORY]; /* movement history */
int hist_index; /* Last added entry in move_hist[] */
- int largest_valid_x; /* Largest valid X coordinate seen so far */
int scroll_y; /* last y-scroll position */
int scroll_x; /* last x-scroll position */
double scroll_a; /* last angle-scroll position */