support mutliple modifiers for key bindings

This commit is contained in:
Shin'ya Ueoka 2017-11-05 09:47:30 +09:00
parent 4e94695c75
commit 036ede3379
11 changed files with 75 additions and 75 deletions

View file

@ -1,22 +1,5 @@
import * as dom from 'shared/utils/dom';
const modifierdKeyName = (name) => {
if (name.length === 1) {
return name.toUpperCase();
} else if (name === 'Escape') {
return 'Esc';
}
return name;
};
const mapKey = (e) => {
if (e.ctrlKey) {
return '<C-' + modifierdKeyName(e.key) + '>';
} else if (e.shiftKey && e.key.length !== 1) {
return '<S-' + modifierdKeyName(e.key) + '>';
}
return e.key;
};
import * as keys from 'shared/utils/keys';
export default class InputComponent {
constructor(target) {
@ -64,7 +47,7 @@ export default class InputComponent {
return;
}
let key = mapKey(e);
let key = keys.fromKeyboardEvent(e);
for (let listener of this.onKeyListeners) {
let stop = listener(key);