Problem with not repetitive bindings

I create binding for Ctrl+W. So i call kbm.add("ToggleWireframe",keys), where kmb is KeyBindingManager and keys is array with 2 codes: left ctrl and W.

Then i add an action with name "ToggleWireframe" and set it as not repetitive.



When i press Ctrl+W for the first time - it works. But when i press it once more - it doesn't work.



To make it work again i should press W without ctrl and on the next Ctrl+W it works.

this seems to work better:



KeyBindingManager.getKeyBindingManager().add("doit", KeyInput.KEY_SPACE);
if (KeyBindingManager.getKeyBindingManager().isValidCommand("doit", false) && KeyInput.get().isKeyDown(KeyInput.KEY_LCONTROL)) {
  // doit
}

this is the problematic code:



    private boolean getStickyKey(int key) {
        if (!restrictKey[key] && KeyInput.get().isKeyDown(key)) {
            restrictKey[key] = true;
            return true;
        } else if (!KeyInput.get().isKeyDown(key) && restrictKey[key])
            restrictKey[key] = false;
        return false;
    }



getStickyKey() only returns true once for a key, in the next update cycle getStickyKey() returns false, even the key is still hold down.

yes, i've tryed that solution but IMO its not so good to trash handler code with such logic.

maybe its better to rewrite getStickyKey?