If the user touches the touchpad in two locations, then raises the first finger that touched the pad, the mouse jumps to the location of the second finger as if a full move occurred. This happens on Synaptics touchpads.
To reproduce:
Touch the pad in the upper right and hold
Touch with another finger lower left and hold
Release the finger in the upper right
Mouse jumps to lower left edge of the screen, sometimes selecting text along the way
I have noticed a few symptoms related to the problem. They can be tracked down in ComputeDeltas() in synaptics.c:
1) Sometimes deltas are so big that they couldn't possibly happen in so little time (e.g. in less than 20 milliseconds).
2) A comparison between the timestamp in priv->move_hist and hw->millis shows that something went wrong and that an event was skipped, hence the deltas are wrong (or at least bigger than they should be).
3) Usually when 2) takes place, the next few deltas happen to be inaccurate too.
I have written a patch which is more of a workaround for the touchpads that I own and I believe that, at least 2) could be fixed in a better way. Consider the patch as an additional description.
Let me know if there is something I can do to help or where you would like to see this problem fixed.
If the user touches the touchpad in two locations, then raises the first finger that touched the pad, the mouse jumps to the location of the second finger as if a full move occurred. This happens on Synaptics touchpads.
To reproduce:
Touch the pad in the upper right and hold
Touch with another finger lower left and hold
Release the finger in the upper right
Mouse jumps to lower left edge of the screen, sometimes selecting text along the way
I have noticed a few symptoms related to the problem. They can be tracked down in ComputeDeltas() in synaptics.c:
1) Sometimes deltas are so big that they couldn't possibly happen in so little time (e.g. in less than 20 milliseconds).
2) A comparison between the timestamp in priv->move_hist and hw->millis shows that something went wrong and that an event was skipped, hence the deltas are wrong (or at least bigger than they should be).
3) Usually when 2) takes place, the next few deltas happen to be inaccurate too.
I have written a patch which is more of a workaround for the touchpads that I own and I believe that, at least 2) could be fixed in a better way. Consider the patch as an additional description.
Let me know if there is something I can do to help or where you would like to see this problem fixed.