diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-02-09 10:57:00 -0800 |
---|---|---|
committer | Chase Douglas <chase.douglas@canonical.com> | 2012-02-11 18:53:28 +0100 |
commit | 92a46012d59b425d9b28e53e6e6faa7856ab4b08 (patch) | |
tree | 3a922f647a0201e58cc06144762e99d73ae2117a | |
parent | 01d6f4603ef41a12b53b7ba352dec3404664f0f9 (diff) |
Enable clickpad click and drag with two fingers
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
-rw-r--r-- | src/synaptics.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/synaptics.c b/src/synaptics.c index 45c5289..d840aa4 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -1898,10 +1898,13 @@ HandleTapProcessing(SynapticsPrivate *priv, struct SynapticsHwState *hw, hw->left = 0; break; case TS_CLICKPAD_MOVE: + if (hw->numFingers > 1) + hw->numFingers--; SetMovingState(priv, MS_TOUCHPAD_RELATIVE, now); if (!hw->left && !hw->right && !hw->middle) { SetMovingState(priv, MS_FALSE, now); SetTapState(priv, TS_MOVE, now); + priv->count_packet_finger = 0; } break; } @@ -2786,6 +2789,14 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now, if (para->touchpad_off == 1) return delay; + /* If a physical button is pressed on a clickpad, use cumulative touch + * movements for motion */ + if (para->clickpad && (hw->left || hw->right || hw->middle)) + { + hw->x = hw->cumulative_dx; + hw->y = hw->cumulative_dy; + } + /* apply hysteresis before doing anything serious. This cancels * out a lot of noise which might surface in strange phenomena * like flicker in scrolling or noise motion. */ |