diff --git a/keymaster.js b/keymaster.js index 8f5b5fc..3f86660 100644 --- a/keymaster.js +++ b/keymaster.js @@ -134,6 +134,7 @@ function resetModifiers() { for(k in _mods) _mods[k] = false; for(k in _MODIFIERS) assignKey[k] = false; + _downKeys = []; }; // parse and assign shortcut diff --git a/test/keymaster.html b/test/keymaster.html index d329317..38aa32b 100644 --- a/test/keymaster.html +++ b/test/keymaster.html @@ -48,6 +48,12 @@

Keymaster unit tests

(el||document).dispatchEvent(event); } + function triggerEvent(eventName, el){ + var event = document.createEvent('Event'); + event.initEvent(eventName, true, true); + (el||document).dispatchEvent(event); + } + var KEYS = { '⇧': 16, shift: 16, '⌥': 18, alt: 18, option: 18, @@ -402,6 +408,14 @@

Keymaster unit tests

t.assertTrue(pressedKeys.indexOf(16) >= 0); t.assertTrue(pressedKeys !== otherKeys); keyup(65); keyup(KEYS.shift); + + keydown(65); + t.assertTrue(key.isPressed(65)); + t.assertEqual(key.getPressedKeyCodes().length, 1); + triggerEvent('focus', window); + t.assertFalse(key.isPressed(65)); + t.assertEqual(key.getPressedKeyCodes().length, 0); + keyup(65); }, testNoConflict: function(t) {