http://bugs.winehq.org/show_bug.cgi?id=29366
--- Comment #9 from Ruslan b7.10110111@gmail.com 2012-01-14 12:26:59 CST --- This patch makes it work better, but autorepeat presses with 0th bit set are not reported to trainer (i.e. when you press a key and hold it). Also, if I press the button too frequently, it appears to not be returned as been pressed. The strange thing is that the test program does get autorepeat presses as expected, but the trainer doesn't.
One of the differences between how trainer gets presses and the test program is that trainer always gets them via if(thread_info->key_state) logic, and the test program gets some of the keys via if part, and others via else.