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) {