Change: expose hotkeys.setState
This commit is contained in:
parent
181d9206d9
commit
8caaab742c
|
@ -1,24 +1,33 @@
|
||||||
/* global applyOnMessage installed */
|
/* global applyOnMessage installed */
|
||||||
'use strict';
|
'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', _);
|
window.removeEventListener('showStyles:done', _);
|
||||||
|
togglablesShown = true;
|
||||||
let togglablesShown = true;
|
togglables = getTogglables();
|
||||||
let togglables = getTogglables();
|
ready = true;
|
||||||
let enabled = true;
|
setState(true);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKeyDown);
|
|
||||||
window.hotkeys = {
|
|
||||||
enable() {
|
|
||||||
enabled = true;
|
|
||||||
},
|
|
||||||
disable() {
|
|
||||||
enabled = false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
initHotkeyInfo();
|
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) {
|
function onKeyDown(event) {
|
||||||
if (event.ctrlKey || event.altKey || event.metaKey || !enabled) {
|
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