mirror of
https://github.com/X11Libre/xf86-input-synaptics.git
synced 2026-03-24 01:34:04 +00:00
Support inverted scroll direction.
This patch allows scroll direction to be inverted by allowing VertScrollDelta and HorizScrollDelta to be set to negative values. This enables behaviour that is consistent with modern touchscreen devices, where the content scrolls in the same direction as the user's finger movement. Signed-off-by: Alyssa Hung <ahung@isisview.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
committed by
Peter Hutterer
parent
38b93b71c8
commit
1874094f0e
@@ -634,6 +634,9 @@ HorizScrollDelta parameters.
|
||||
To disable vertical or horizontal scrolling, set VertScrollDelta or
|
||||
HorizScrollDelta to zero.
|
||||
.
|
||||
To invert the direction of vertical or horizontal scrolling, set
|
||||
VertScrollDelta or HorizScrollDelta to a negative value.
|
||||
.
|
||||
.LP
|
||||
Acceleration is mostly handled outside the driver, thus the driver will
|
||||
translate MinSpeed into constant deceleration and adapt MaxSpeed at
|
||||
|
||||
@@ -2558,14 +2558,14 @@ HandleScrolling(SynapticsPrivate *priv, struct SynapticsHwState *hw,
|
||||
|
||||
if (priv->vert_scroll_edge_on || priv->vert_scroll_twofinger_on) {
|
||||
/* + = down, - = up */
|
||||
if (para->scroll_dist_vert > 0 && hw->y != priv->scroll.last_y) {
|
||||
if (para->scroll_dist_vert != 0 && hw->y != priv->scroll.last_y) {
|
||||
priv->scroll.delta_y += (hw->y - priv->scroll.last_y);
|
||||
priv->scroll.last_y = hw->y;
|
||||
}
|
||||
}
|
||||
if (priv->horiz_scroll_edge_on || priv->horiz_scroll_twofinger_on) {
|
||||
/* + = right, - = left */
|
||||
if (para->scroll_dist_horiz > 0 && hw->x != priv->scroll.last_x) {
|
||||
if (para->scroll_dist_horiz != 0 && hw->x != priv->scroll.last_x) {
|
||||
priv->scroll.delta_x += (hw->x - priv->scroll.last_x);
|
||||
priv->scroll.last_x = hw->x;
|
||||
}
|
||||
|
||||
@@ -90,8 +90,8 @@ static struct Parameter params[] = {
|
||||
{"EmulateMidButtonTime", PT_INT, 0, 1000, SYNAPTICS_PROP_MIDDLE_TIMEOUT,32, 0},
|
||||
{"EmulateTwoFingerMinZ", PT_INT, 0, 1000, SYNAPTICS_PROP_TWOFINGER_PRESSURE, 32, 0},
|
||||
{"EmulateTwoFingerMinW", PT_INT, 0, 15, SYNAPTICS_PROP_TWOFINGER_WIDTH, 32, 0},
|
||||
{"VertScrollDelta", PT_INT, 0, 1000, SYNAPTICS_PROP_SCROLL_DISTANCE, 32, 0},
|
||||
{"HorizScrollDelta", PT_INT, 0, 1000, SYNAPTICS_PROP_SCROLL_DISTANCE, 32, 1},
|
||||
{"VertScrollDelta", PT_INT, -1000, 1000, SYNAPTICS_PROP_SCROLL_DISTANCE, 32, 0},
|
||||
{"HorizScrollDelta", PT_INT, -1000, 1000, SYNAPTICS_PROP_SCROLL_DISTANCE, 32, 1},
|
||||
{"VertEdgeScroll", PT_BOOL, 0, 1, SYNAPTICS_PROP_SCROLL_EDGE, 8, 0},
|
||||
{"HorizEdgeScroll", PT_BOOL, 0, 1, SYNAPTICS_PROP_SCROLL_EDGE, 8, 1},
|
||||
{"CornerCoasting", PT_BOOL, 0, 1, SYNAPTICS_PROP_SCROLL_EDGE, 8, 2},
|
||||
|
||||
Reference in New Issue
Block a user