diff options
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/float.js | 31 | 
1 files changed, 18 insertions, 13 deletions
| diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index 2e952efb..8a05aa70 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -102,21 +102,16 @@ class DisplayFloat extends Display {      }      onKeyDown(e) { -        const handlers = { -            67: /* c */ () => { -                if (e.ctrlKey && !window.getSelection().toString()) { -                    this.onSelectionCopy(); -                    return true; -                } +        const key = Display.getKeyFromEvent(e); +        const handlers = DisplayFloat.onKeyDownHandlers; +        if (handlers.hasOwnProperty(key)) { +            const handler = handlers[key]; +            if (handler(this, e)) { +                e.preventDefault(); +                return;              } -        }; - -        const handler = handlers[e.keyCode]; -        if (handler && handler()) { -            e.preventDefault(); -        } else { -            super.onKeyDown(e);          } +        super.onKeyDown(e);      }      autoPlayAudio() { @@ -146,4 +141,14 @@ class DisplayFloat extends Display {      }  } +DisplayFloat.onKeyDownHandlers = { +    'C': (self, e) => { +        if (e.ctrlKey && !window.getSelection().toString()) { +            self.onSelectionCopy(); +            return true; +        } +        return false; +    } +}; +  window.yomichan_display = new DisplayFloat(); |