Bind formatting hotkeys on input element

And bind only one event for all of the hotkeys
This commit is contained in:
Pavel Djundik 2018-03-20 20:57:19 +02:00
parent 453eab3a12
commit 3c1db1d7d6

View file

@ -95,6 +95,7 @@ Mousetrap.bind([
contextMenuContainer.hide();
});
const inputTrap = Mousetrap(input.get(0));
const colorsHotkeys = {
k: "\x03",
b: "\x02",
@ -106,23 +107,16 @@ const colorsHotkeys = {
};
for (const hotkey in colorsHotkeys) {
Mousetrap.bind("mod+" + hotkey, function(e) {
const inputElement = input.get(0);
// Do not handle modifier hotkeys if input is not focused
if (document.activeElement !== inputElement) {
return;
}
e.preventDefault();
inputTrap.bind("mod+" + hotkey, function(e) {
const modifier = colorsHotkeys[e.key];
wrapCursor(
inputElement,
e.target,
modifier,
inputElement.selectionStart === inputElement.selectionEnd ? "" : modifier
e.target.selectionStart === e.target.selectionEnd ? "" : modifier
);
return false;
});
}