On Thu, Feb 09, 2012 at 06:53:01PM -0800, Chase Douglas wrote: > Signed-off-by: Chase Douglas <[email protected]> > --- > src/synaptics.c | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/src/synaptics.c b/src/synaptics.c > index 662e060..473ce13 100644 > --- a/src/synaptics.c > +++ b/src/synaptics.c > @@ -1889,10 +1889,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; > } > @@ -2777,6 +2780,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; > + } > +
help me out here: hw->x is absolute, but hw->cumulative_dx is relative. how do we deal with this? Cheers, Peter > /* 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. */ > -- > 1.7.8.3 > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
