Synaptics style multi-touch and cursor jumps

Chris Bagwell chris at cnpbagwell.com
Fri Aug 20 06:39:33 PDT 2010


On Wed, Aug 18, 2010 at 10:03 PM, Chris Bagwell <chris at cnpbagwell.com> wrote:
> Suggested xf86-input-synaptics behaviour change:
>
> Its not a terrible problem but I think could stand to be improved.  I
> propose following change to help further get rid of jumps:
>
> Start tracking previous finger count.  Modify ComputeDelta() to be
> even more aggressive in resetting delta history on finger transitions.
>
> * When previousNumFingers < numFingers then require 4 new samples to
> debounce theoretical jumps in #2 on old Synpatics hw and allow
> flexibility of newer hardware as we.  Low priority and debatable.
>
> * When previousNumFingers > numFingers then require 4 new samples to
> debounce real jump in #1 from real synaptics hw and presumably most
> other HW.  High priority since I can see this easily and why I started
> looking into basic issue.
>
> I've tested this change and seens to fix my usecase #1.  Some
> additional issue still exists that allows jumps when I touch two
> extremes of touchpad and lift 1st finger only.  Probably unrelated to
> above I'm guessing.
>
> Chris
>

I've found my source of cursor jump that still exists after patch.  My
hw needs 2 finger emulation on width.  It seems when I touch extremes,
internally it probably looks like 2 half fingers they are adding up to
1 whole.  So code can do no filtering based on multi-touch concepts in
this one case.

I'll keep any eye out and see if jump occurs in real usage but ignore
otherwise.  I'd prefer to not to visit discarding data based on delta
sizes.


More information about the xorg-devel mailing list