diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/mixed/js/display.js | 65 | 
1 files changed, 32 insertions, 33 deletions
| diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 9d3dc51b..ab0674a9 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -193,9 +193,8 @@ class Display {      onKeyDown(e) {          const key = Display.getKeyFromEvent(e); -        const handlers = Display.onKeyDownHandlers; -        if (hasOwn(handlers, key)) { -            const handler = handlers[key]; +        const handler = Display._onKeyDownHandlers.get(key); +        if (typeof handler === 'function') {              if (handler(this, e)) {                  e.preventDefault();                  return true; @@ -766,101 +765,101 @@ class Display {      }  } -Display.onKeyDownHandlers = { -    'Escape': (self) => { +Display._onKeyDownHandlers = new Map([ +    ['Escape', (self) => {          self.onSearchClear();          return true; -    }, +    }], -    'PageUp': (self, e) => { +    ['PageUp', (self, e) => {          if (e.altKey) {              self.entryScrollIntoView(self.index - 3, null, true);              return true;          }          return false; -    }, +    }], -    'PageDown': (self, e) => { +    ['PageDown', (self, e) => {          if (e.altKey) {              self.entryScrollIntoView(self.index + 3, null, true);              return true;          }          return false; -    }, +    }], -    'End': (self, e) => { +    ['End', (self, e) => {          if (e.altKey) {              self.entryScrollIntoView(self.definitions.length - 1, null, true);              return true;          }          return false; -    }, +    }], -    'Home': (self, e) => { +    ['Home', (self, e) => {          if (e.altKey) {              self.entryScrollIntoView(0, null, true);              return true;          }          return false; -    }, +    }], -    'ArrowUp': (self, e) => { +    ['ArrowUp', (self, e) => {          if (e.altKey) {              self.entryScrollIntoView(self.index - 1, null, true);              return true;          }          return false; -    }, +    }], -    'ArrowDown': (self, e) => { +    ['ArrowDown', (self, e) => {          if (e.altKey) {              self.entryScrollIntoView(self.index + 1, null, true);              return true;          }          return false; -    }, +    }], -    'B': (self, e) => { +    ['B', (self, e) => {          if (e.altKey) {              self.sourceTermView();              return true;          }          return false; -    }, +    }], -    'F': (self, e) => { +    ['F', (self, e) => {          if (e.altKey) {              self.nextTermView();              return true;          }          return false; -    }, +    }], -    'E': (self, e) => { +    ['E', (self, e) => {          if (e.altKey) {              self.noteTryAdd('term-kanji');              return true;          }          return false; -    }, +    }], -    'K': (self, e) => { +    ['K', (self, e) => {          if (e.altKey) {              self.noteTryAdd('kanji');              return true;          }          return false; -    }, +    }], -    'R': (self, e) => { +    ['R', (self, e) => {          if (e.altKey) {              self.noteTryAdd('term-kana');              return true;          }          return false; -    }, +    }], -    'P': (self, e) => { +    ['P', (self, e) => {          if (e.altKey) {              const entry = self.getEntry(self.index);              if (entry !== null && entry.dataset.type === 'term') { @@ -869,16 +868,16 @@ Display.onKeyDownHandlers = {              return true;          }          return false; -    }, +    }], -    'V': (self, e) => { +    ['V', (self, e) => {          if (e.altKey) {              self.noteTryView();              return true;          }          return false; -    } -}; +    }] +]);  Display._runtimeMessageHandlers = new Map([      ['optionsUpdate', (self) => self.updateOptions(null)] |