I found a problem with movement of my char on linux (Ubuntu 14.04 + Nvidia proprietary drivers, the same was on Arch linux), here is the video:
Explanation:
Side walk buttons - A D
Forward/backward walk button - W
When you press only side walk button - glitch appears
When you press only forward walk button - no glitch
When you press first side walk button and after that forwawd walk button - no glitch
When you press first forwawd walk button and after that side walk button - glitch appears
There is no bug on Windows by the way.
(This post was last modified: 10-22-2014 05:04 AM by Houge.)
In void Keyboard::push(Byte b)
BS_DOUBLE will be enabled only if
"!(_button[b]&BS_ON))" condition is met, which means it can't detect double click unless the button was released.
Releasing is done only in Keyboard::release and Keyboard::eat, so unless Keyboard::eat is called, the only thing is Keyboard::release that can remove the BS_ON flag.
On Linux Kb.release is called only in
Windows.cpp:
case FocusOut:
and
case KeyRelease:
Which are system event notifications.
I'll be back to my Linux laptop in a few days (27-28th Oct) so I can check it then.
You could do some checks if "KeyRelease" is called even when the key is not released.