Change: expose hotkeys.setState
This commit is contained in:
parent
181d9206d9
commit
8caaab742c
|
@ -1,24 +1,33 @@
|
|||
/* global applyOnMessage installed */
|
||||
'use strict';
|
||||
|
||||
// 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 _() {
|
|||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
|
Loading…
Reference in New Issue
Block a user