diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/content-input.js | 25 | 
1 files changed, 19 insertions, 6 deletions
| diff --git a/src/components/content-input.js b/src/components/content-input.js index 53a2f7d..6437128 100644 --- a/src/components/content-input.js +++ b/src/components/content-input.js @@ -2,12 +2,31 @@ import messages from '../content/messages';  export default class ContentInputComponent {    constructor(target) { +    this.pressed = {}; +      target.addEventListener('keypress', this.onKeyPress.bind(this));      target.addEventListener('keydown', this.onKeyDown.bind(this));      target.addEventListener('keyup', this.onKeyUp.bind(this));    }    onKeyPress(e) { +    this.capture(e); +  } + +  onKeyDown(e) { +    this.capture(e); +  } + +  onKeyUp(e) { +    this.pressed[e.key] = false; +  } + +  capture(e) { +    if (this.pressed[e.key]) { +      return; +    } +    this.pressed[e.key] = true; +      if (e.target instanceof HTMLInputElement ||        e.target instanceof HTMLTextAreaElement ||        e.target instanceof HTMLSelectElement) { @@ -22,10 +41,4 @@ export default class ContentInputComponent {        ctrl: e.ctrlKey      });    } - -  onKeyDown() { -  } - -  onKeyUp() { -  }  } | 
