summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriele Mazzotta <gabriele.mzt@gmail.com>2014-08-14 20:03:42 +0200
committerPeter Hutterer <peter.hutterer@who-t.net>2014-09-05 13:36:19 +1000
commitec0901e5f81d9cad6cc8bbdcb5ea075009c13de5 (patch)
treeacffd66307942ee85c880d0b5471b663bb19e4e7
parent90d19302306f49722e210227b2fb5161e6f51880 (diff)
Use cumulative relative touch movements while scrolling
Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/eventcomm.c8
-rw-r--r--src/synaptics.c8
2 files changed, 10 insertions, 6 deletions
diff --git a/src/eventcomm.c b/src/eventcomm.c
index 4a646af..faaa57d 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -674,9 +674,11 @@ EventReadHwState(InputInfoPtr pInfo,
SynapticsResetTouchHwState(hw, FALSE);
- /* Reset cumulative values if buttons were not previously pressed,
- * or no finger was previously present. */
- if ((!hw->left && !hw->right && !hw->middle) || hw->z < para->finger_low) {
+ /* Reset cumulative values if buttons were not previously pressed and no
+ * two-finger scrolling is ongoing, or no finger was previously present. */
+ if (((!hw->left && !hw->right && !hw->middle) &&
+ !(priv->vert_scroll_twofinger_on || priv->vert_scroll_twofinger_on)) ||
+ hw->z < para->finger_low) {
hw->cumulative_dx = hw->x;
hw->cumulative_dy = hw->y;
sync_cumulative = TRUE;
diff --git a/src/synaptics.c b/src/synaptics.c
index b49957c..e8a08d2 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -3098,9 +3098,11 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now,
}
}
- /* If a physical button is pressed on a clickpad, use cumulative relative
- * touch movements for motion */
- if (para->clickpad && (priv->lastButtons & 7) &&
+ /* If a physical button is pressed on a clickpad or a two-finger scrolling
+ * is ongoing, use cumulative relative touch movements for motion */
+ if (para->clickpad &&
+ ((priv->lastButtons & 7) ||
+ (priv->vert_scroll_twofinger_on || priv->horiz_scroll_twofinger_on)) &&
priv->last_button_area != TOP_BUTTON_AREA) {
hw->x = hw->cumulative_dx;
hw->y = hw->cumulative_dy;