Change: expose hotkeys.setState

This commit is contained in:
eight 2017-12-06 03:30:46 +08:00
parent 181d9206d9
commit 8caaab742c

View File

@ -1,24 +1,33 @@
/* global applyOnMessage installed */
'use strict';
window.addEventListener('showStyles:done', function _() {
// eslint-disable-next-line no-var
var hotkeys = (() => {
let togglablesShown;
let togglables;
let enabled = false;
let ready = false;
window.addEventListener('showStyles:done', function _() {
window.removeEventListener('showStyles:done', _);
let togglablesShown = true;
let togglables = getTogglables();
let enabled = true;
window.addEventListener('keydown', onKeyDown);
window.hotkeys = {
enable() {
enabled = true;
},
disable() {
enabled = false;
}
};
togglablesShown = true;
togglables = getTogglables();
ready = true;
setState(true);
initHotkeyInfo();
return;
});
return {setState};
function setState(newState = !enabled) {
if (!ready) {
throw new Error('hotkeys no ready');
}
if (newState !== enabled) {
window[`${newState ? 'add' : 'remove'}EventListener`]('keydown', onKeyDown);
enabled = newState;
}
}
function onKeyDown(event) {
if (event.ctrlKey || event.altKey || event.metaKey || !enabled) {
@ -174,4 +183,4 @@ window.addEventListener('showStyles:done', function _() {
});
}
}
});
})();