diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-08-03 11:07:51 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-08-03 11:09:09 +1000 |
commit | af963fd0c38b397365ce83a8796bbade751a8371 (patch) | |
tree | 86e4f9a50ceeafbaa659c751ebd2f2bf5be7f6df | |
parent | b46ea23ab9f8db40880d294733debbe7a5ebcab7 (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.man | 10 | ||||
-rw-r--r-- | src/synaptics.c | 25 | ||||
-rw-r--r-- | src/synapticsstr.h | 1 |
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 */ |