capture keys on both keypress and keydown
This commit is contained in:
parent
5ac1f60ece
commit
4b5616b524
1 changed files with 19 additions and 6 deletions
|
@ -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() {
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue