--- Ive moved the test for INPUT, SELECT and TEXTAREA into a property of `key`, `key.prekeydown` if the function assigned to `prekeydown` returns `false`, then keymaster ignores the key press. you can also change scope in this function, so you can have a scope the shortcuts that work inside an input. one quirk is that keys in the all scope still work when youve changed the scope. so, if you want shortcuts that do not apply inside an input, you need to assign them to a particular scope. Conflicts: keymaster.min.js
--- Removes all handlers associated with a given scope, allowing throw-away and re-usable scopes. Includes test. Adds 1 function, 8 lines of functional code, and 117 bytes to the minified version. I took the liberty of adding a simple test for scope while I was at it. I love how keymaster is so simple and small, I hope this addition does not constitute undue bloat. If youre curious why I added this function: on a single-site app Im building we want to be able to be able to switch to different "apps" with their own shortcuts. However, when we navigate away from the app it is destroyed, and a new one is created when we navigate back. Allowing us to destroy the scope of all shortcuts the app registered means we dont need to worry about callbacks to a dead app being fired (and of course the app not getting garbage-collected because the closures hold references to it). Of course, if theres another, better way to do this, Id be happy to hear that too. Now, we can just do: // on app open key(n, this.appName, this.createNewItem); // ... and other shortcuts... key.setScope(this.appName); // on app close key.setScope(all); key.deleteScope(this.appName); Conflicts: keymaster.js keymaster.min.js
Added a getScope method.
reset modifiers to false on window focus. fixes alt+tab, tab switching, and related issues
…switching browser tabs with the keyboard, etc
Removes all handlers associated with a given scope, allowing throw-away and re-usable scopes. Includes test. Adds 1 function, 8 lines of functional code, and 117 bytes to the minified version.
makin stuff clean
Unicode for ctrl key