On Sun, Nov 23, 2008 at 08:46:14PM +0100, Batchty wrote: > Hello, I have a Dell Inspiron 1520 with a Synaptics touchpad. This touchpad > for > a unknown reason loves to send event like these after every finger release : > > time x y z f w l r u d m multi gl gm gr gdx gdy > 1.563 3224 1625 57 1 5 0 0 0 0 0 00000000 0 0 0 0 0 > 1.574 3251 1632 30 1 5 0 0 0 0 0 00000000 0 0 0 0 0 > 1.584 3292 1673 10 1 5 0 0 0 0 0 00000000 0 0 0 0 0 > 1.594 1 5855 3 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 1.634 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 1.746 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 > 1.897 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > > Most of the time these events are ignored by the driver. but sometimes > it confuse two-finger scrolling and tap detection. > > For example, in this log, the first tap is recognized, the second isn't : > > time x y z f w l r u d m multi gl gm gr gdx gdy > 11.597 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 11.678 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 > 11.688 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 11.709 3862 2406 8 1 5 0 0 0 0 0 00000000 0 0 0 0 0 > 11.719 3851 2464 67 1 5 0 0 0 0 0 00000000 0 0 0 0 0 > 11.729 3849 2407 35 1 4 0 0 0 0 0 00000000 0 0 0 0 0 > 11.739 3858 2578 5 1 9 0 0 0 0 0 00000000 0 0 0 0 0 > 11.749 3858 2578 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 > 11.850 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 11.860 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 > 12.073 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 12.083 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 > 12.347 1 5855 4 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 12.357 3844 2381 56 1 4 0 0 0 0 0 00000000 0 0 0 0 0 > 12.377 3848 2361 32 1 4 0 0 0 0 0 00000000 0 0 0 0 0 > 12.388 1 5855 3 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 12.398 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 12.408 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 > 12.428 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > > The problem with the second tap is that the driver check if the movement from > (3848,2361) to (1,5855) is over TapMaxMove before it checks for a finger > release. > So the driver considers it as a (short) finger move. > The first patch add the condition ''the finger is still present'' to > the 'move' condition. > > The other problem is with double-finger scrolling. In this log, the driver > send hundred of scroll-down events : > > 2.457 3220 2025 75 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 2.467 3244 1933 75 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 2.477 3275 1864 75 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 2.488 3329 1835 21 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 2.508 3461 1803 7 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 2.519 1 5855 2 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > 2.631 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 > 2.904 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0 > > It's in fact scrolling from 1803 to 5855 because num_finger is still == 2. > The second patch stops two-finger scrolling when the ''finger'' variable is > false. > > > > Oh, and thanks for maintaining this driver. :) i tried to contact previous > upstream but they didn't answer.
Pushed, thanks a lot! Cheers, Peter _______________________________________________ xorg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xorg
