aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/content-input.js25
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() {
- }
}