http://bugs.winehq.org/show_bug.cgi?id=27028
--- Comment #48 from Vitaliy Margolen vitaliy-bugzilla@kievinfo.com 2011-12-06 19:28:42 CST --- BTW the fix is wrong. Wine ends up sending two events down the chain, including to dinput. One with data from xi2 another from motion notify. The only reason it some how works in dinput, is one gets turned into 0 delta because of desynchronization between real CursorPos and what's reported by wineserver.
Sometimes they cancel each-other, because of delayed cursor position upgrades (those TickCount() > last_updated stuff). Which on it's own is completely wrong as well, and result in wild mouse jumps. Which is _the_ real problem here, due to big time gaps between touch pad position changes.
The proper way to fix this would be correctly fixing reported position from GetCursorPos().