On Thu, Feb 09, 2012 at 06:53:05PM -0800, Chase Douglas wrote: > The results depend on the data rate of the device. A device with a > higher data rate, and thus lower individual deltas, will behave > differently with the regression calculation. > > This can be verified on Synaptics semi-mt clickpads. The data rate is > halved when two or more touches are on the device. When trying to press > a button and drag the cursor with another touch, the motion will feel > faster than dragging with only one touch on the device. > > Signed-off-by: Chase Douglas <[email protected]> > --- > src/synaptics.c | 7 +++---- > 1 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/src/synaptics.c b/src/synaptics.c > index dd138ea..9d8f3ee 100644 > --- a/src/synaptics.c > +++ b/src/synaptics.c > @@ -2046,9 +2046,8 @@ get_delta(SynapticsPrivate *priv, const struct > SynapticsHwState *hw, > int x_edge_speed = 0; > int y_edge_speed = 0; > > - /* HIST is full enough: priv->count_packet_finger > 3 */ > - *dx = estimate_delta(hw->x, HIST(0).x, HIST(1).x, HIST(2).x); > - *dy = estimate_delta(hw->y, HIST(0).y, HIST(1).y, HIST(2).y); > + *dx = hw->x - HIST(0).x; > + *dy = hw->y - HIST(0).y; > > if ((priv->tap_state == TS_DRAG) || para->edge_motion_use_always) > get_edge_speed(priv, hw, edge, &x_edge_speed, &y_edge_speed); > @@ -2118,7 +2117,7 @@ ComputeDeltas(SynapticsPrivate *priv, const struct > SynapticsHwState *hw, > * POLL_MS declaration. */ > delay = MIN(delay, POLL_MS); > > - if (priv->count_packet_finger <= 3) /* min. 3 packets, see get_delta() */ > + if (priv->count_packet_finger <= 1) > goto out; /* skip the lot */ > > if (priv->moving_state == MS_TRACKSTICK) > -- > 1.7.8.3 >
uhm, that commit seems a bit too simple. how does this affect other devices? Cheers, Peter _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
