Refactor DisplaySearch.onKeyDownIgnoreKeys
This commit is contained in:
parent
8d5d034516
commit
13874e962b
@ -39,6 +39,21 @@ class DisplaySearch extends Display {
|
|||||||
this.introAnimationTimer = null;
|
this.introAnimationTimer = null;
|
||||||
|
|
||||||
this.clipboardMonitor = new ClipboardMonitor();
|
this.clipboardMonitor = new ClipboardMonitor();
|
||||||
|
|
||||||
|
this._onKeyDownIgnoreKeys = new Map([
|
||||||
|
['ANY_MOD', new Set([
|
||||||
|
'Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'PageDown', 'PageUp', 'Home', 'End',
|
||||||
|
'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10',
|
||||||
|
'F11', 'F12', 'F13', 'F14', 'F15', 'F16', 'F17', 'F18', 'F19', 'F20',
|
||||||
|
'F21', 'F22', 'F23', 'F24'
|
||||||
|
])],
|
||||||
|
['Control', new Set(['C', 'A', 'Z', 'Y', 'X', 'F', 'G'])],
|
||||||
|
['Meta', new Set(['C', 'A', 'Z', 'Y', 'X', 'F', 'G'])],
|
||||||
|
['OS', []],
|
||||||
|
['Alt', []],
|
||||||
|
['AltGraph', []],
|
||||||
|
['Shift', []]
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static create() {
|
static create() {
|
||||||
@ -151,18 +166,18 @@ class DisplaySearch extends Display {
|
|||||||
|
|
||||||
onKeyDown(e) {
|
onKeyDown(e) {
|
||||||
const key = Display.getKeyFromEvent(e);
|
const key = Display.getKeyFromEvent(e);
|
||||||
const ignoreKeys = DisplaySearch.onKeyDownIgnoreKeys;
|
const ignoreKeys = this._onKeyDownIgnoreKeys;
|
||||||
|
|
||||||
const activeModifierMap = {
|
const activeModifierMap = new Map([
|
||||||
'Control': e.ctrlKey,
|
['Control', e.ctrlKey],
|
||||||
'Meta': e.metaKey,
|
['Meta', e.metaKey],
|
||||||
'ANY_MOD': true
|
['ANY_MOD', true]
|
||||||
};
|
]);
|
||||||
|
|
||||||
let preventFocus = false;
|
let preventFocus = false;
|
||||||
for (const [modifier, keys] of Object.entries(ignoreKeys)) {
|
for (const [modifier, keys] of ignoreKeys.entries()) {
|
||||||
const modifierActive = activeModifierMap[modifier];
|
const modifierActive = activeModifierMap.get(modifier);
|
||||||
if (key === modifier || (modifierActive && keys.includes(key))) {
|
if (key === modifier || (modifierActive && keys.has(key))) {
|
||||||
preventFocus = true;
|
preventFocus = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -345,21 +360,6 @@ class DisplaySearch extends Display {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DisplaySearch.onKeyDownIgnoreKeys = {
|
|
||||||
'ANY_MOD': [
|
|
||||||
'Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'PageDown', 'PageUp', 'Home', 'End',
|
|
||||||
'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10',
|
|
||||||
'F11', 'F12', 'F13', 'F14', 'F15', 'F16', 'F17', 'F18', 'F19', 'F20',
|
|
||||||
'F21', 'F22', 'F23', 'F24'
|
|
||||||
],
|
|
||||||
'Control': ['C', 'A', 'Z', 'Y', 'X', 'F', 'G'],
|
|
||||||
'Meta': ['C', 'A', 'Z', 'Y', 'X', 'F', 'G'],
|
|
||||||
'OS': [],
|
|
||||||
'Alt': [],
|
|
||||||
'AltGraph': [],
|
|
||||||
'Shift': []
|
|
||||||
};
|
|
||||||
|
|
||||||
DisplaySearch._runtimeMessageHandlers = new Map([
|
DisplaySearch._runtimeMessageHandlers = new Map([
|
||||||
['searchQueryUpdate', (self, {query}) => { self.onExternalSearchUpdate(query); }]
|
['searchQueryUpdate', (self, {query}) => { self.onExternalSearchUpdate(query); }]
|
||||||
]);
|
]);
|
||||||
|
Loading…
Reference in New Issue
Block a user