diff options
author | Gabriele Mazzotta <gabriele.mzt@gmail.com> | 2014-08-14 20:03:42 +0200 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-09-05 13:36:19 +1000 |
commit | ec0901e5f81d9cad6cc8bbdcb5ea075009c13de5 (patch) | |
tree | acffd66307942ee85c880d0b5471b663bb19e4e7 | |
parent | 90d19302306f49722e210227b2fb5161e6f51880 (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.c | 8 | ||||
-rw-r--r-- | src/synaptics.c | 8 |
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; |