Hi Pete, On Saturday 24 March 2007 03:16, Pete Zaitcev wrote: > - } else if (!mousedev->touch) > + } else if (!mousedev->touch) { > mousedev->touch = jiffies; > + /* > + * Seed the ring with new position where finger has just > landed. > + * > + * Without this, a touchpad may report an unchanged position, > + * then a sync. The input_event() eats the position report, > but > + * lets the sync through. We increment pkt_count and leave > + * a stale position in the ring. If a future reference to > fx(2) > + * hits the stale position, a large dx is reported, and the > + * pointer warps across the screen. > + */ > + dev = mousedev->handle.dev; > + fx(0) = dev->abs[ABS_X]; > + fy(0) = dev->abs[ABS_Y]; >
I do not like input hanlders poking into input devices... Can't we just reset pkt_count at the beginning of the touch to get rid of stale data? -- Dmitry