Update display key handlers

This commit is contained in:
toasted-nutbread 2019-12-11 21:51:31 -05:00
parent 7837e9f0e3
commit a9c4ce724c

View File

@ -193,9 +193,8 @@ class Display {
onKeyDown(e) { onKeyDown(e) {
const key = Display.getKeyFromEvent(e); const key = Display.getKeyFromEvent(e);
const handlers = Display.onKeyDownHandlers; const handler = Display._onKeyDownHandlers.get(key);
if (hasOwn(handlers, key)) { if (typeof handler === 'function') {
const handler = handlers[key];
if (handler(this, e)) { if (handler(this, e)) {
e.preventDefault(); e.preventDefault();
return true; return true;
@ -766,101 +765,101 @@ class Display {
} }
} }
Display.onKeyDownHandlers = { Display._onKeyDownHandlers = new Map([
'Escape': (self) => { ['Escape', (self) => {
self.onSearchClear(); self.onSearchClear();
return true; return true;
}, }],
'PageUp': (self, e) => { ['PageUp', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.entryScrollIntoView(self.index - 3, null, true); self.entryScrollIntoView(self.index - 3, null, true);
return true; return true;
} }
return false; return false;
}, }],
'PageDown': (self, e) => { ['PageDown', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.entryScrollIntoView(self.index + 3, null, true); self.entryScrollIntoView(self.index + 3, null, true);
return true; return true;
} }
return false; return false;
}, }],
'End': (self, e) => { ['End', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.entryScrollIntoView(self.definitions.length - 1, null, true); self.entryScrollIntoView(self.definitions.length - 1, null, true);
return true; return true;
} }
return false; return false;
}, }],
'Home': (self, e) => { ['Home', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.entryScrollIntoView(0, null, true); self.entryScrollIntoView(0, null, true);
return true; return true;
} }
return false; return false;
}, }],
'ArrowUp': (self, e) => { ['ArrowUp', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.entryScrollIntoView(self.index - 1, null, true); self.entryScrollIntoView(self.index - 1, null, true);
return true; return true;
} }
return false; return false;
}, }],
'ArrowDown': (self, e) => { ['ArrowDown', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.entryScrollIntoView(self.index + 1, null, true); self.entryScrollIntoView(self.index + 1, null, true);
return true; return true;
} }
return false; return false;
}, }],
'B': (self, e) => { ['B', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.sourceTermView(); self.sourceTermView();
return true; return true;
} }
return false; return false;
}, }],
'F': (self, e) => { ['F', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.nextTermView(); self.nextTermView();
return true; return true;
} }
return false; return false;
}, }],
'E': (self, e) => { ['E', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.noteTryAdd('term-kanji'); self.noteTryAdd('term-kanji');
return true; return true;
} }
return false; return false;
}, }],
'K': (self, e) => { ['K', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.noteTryAdd('kanji'); self.noteTryAdd('kanji');
return true; return true;
} }
return false; return false;
}, }],
'R': (self, e) => { ['R', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.noteTryAdd('term-kana'); self.noteTryAdd('term-kana');
return true; return true;
} }
return false; return false;
}, }],
'P': (self, e) => { ['P', (self, e) => {
if (e.altKey) { if (e.altKey) {
const entry = self.getEntry(self.index); const entry = self.getEntry(self.index);
if (entry !== null && entry.dataset.type === 'term') { if (entry !== null && entry.dataset.type === 'term') {
@ -869,16 +868,16 @@ Display.onKeyDownHandlers = {
return true; return true;
} }
return false; return false;
}, }],
'V': (self, e) => { ['V', (self, e) => {
if (e.altKey) { if (e.altKey) {
self.noteTryView(); self.noteTryView();
return true; return true;
} }
return false; return false;
} }]
}; ]);
Display._runtimeMessageHandlers = new Map([ Display._runtimeMessageHandlers = new Map([
['optionsUpdate', (self) => self.updateOptions(null)] ['optionsUpdate', (self) => self.updateOptions(null)]