Comment 21 for bug 365943

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

(In reply to comment #10)
> Created an attachment (id=27760) [details]
> Quirk - First draft
>
> I was thinking of something like the attached patch.
>
> NOTE: this quirk is just for Synaptics touchpads and therefore it's applied
> only if priv->model == MODEL_SYNAPTICS.

fwiw, my synaptics doesn't do multi-finger, so MODEL_SYNAPTICS is not a good quirk selector. priv->has_double and priv->has_triple are set if the touchpad has multi-finger capabilities. This is regardless of the model.

I find the patch quite hard to review, indentation has a certain randomized component to it. the second half (the non-multifinger part) is the one I tested on my non-multifinger pad and it basically made the touchpad unusable for any larger movements. So this part definitely needs fine-tuning.

why is threshold a double? threshold could be based on the pad dimensions too since a movement of 90 on an ALPS is significantly more than on a synaptics pad.

rather than the wasTimeSkipped approach it'd be better to just dump the old values back into the history so dx/dy is automatically 0 on the next run.

(for a final version of that patch, the xf86Msg must disappear too, it'd spam the logs)

> If the touchpad can detect multi-finger events then, as Peter suggested, we
> smoothen out movements after the user raises the second finger from the
> touchpad. This works well with the Synaptics touchpad in my Fujitsu laptop.

I cannot test this. Henrik, any comments?

> If the touchpad can't detect multi-finger events (e.g. the Dell Mini 10v, the
> HP Mini, etc.) we smoothen movement events which are (usually) too big take
> place in so little time. I know that this is not perfect but, as reported by
> our customers, it's still a big improvement. Furthermore I'm not sure how
> accurate we can be with this kind of touchpads. Better ideas are always welcome
> though.

is it possible to make conditional on two-finger emulation in this case. i.e. only smooth if two-finger emu was triggered?