don't block Shift+Tab keypresses

This commit is contained in:
Bruno Windels 2019-09-26 11:00:55 +02:00
parent b248918aca
commit f5b9373eb5

View file

@ -323,25 +323,35 @@ export default class BasicMessageEditor extends React.Component {
this._insertText("\n"); this._insertText("\n");
handled = true; handled = true;
// autocomplete or enter to send below shouldn't have any modifier keys pressed. // autocomplete or enter to send below shouldn't have any modifier keys pressed.
} else if (!(event.metaKey || event.altKey || event.shiftKey)) { } else {
const metaOrAltPressed = event.metaKey || event.altKey;
const modifierPressed = metaOrAltPressed || event.shiftKey;
if (model.autoComplete && model.autoComplete.hasCompletions()) { if (model.autoComplete && model.autoComplete.hasCompletions()) {
const autoComplete = model.autoComplete; const autoComplete = model.autoComplete;
switch (event.key) { switch (event.key) {
case "ArrowUp": case "ArrowUp":
autoComplete.onUpArrow(event); if (!modifierPressed) {
handled = true; autoComplete.onUpArrow(event);
handled = true;
}
break; break;
case "ArrowDown": case "ArrowDown":
autoComplete.onDownArrow(event); if (!modifierPressed) {
handled = true; autoComplete.onDownArrow(event);
handled = true;
}
break; break;
case "Tab": case "Tab":
autoComplete.onTab(event); if (!metaOrAltPressed) {
handled = true; autoComplete.onTab(event);
handled = true;
}
break; break;
case "Escape": case "Escape":
autoComplete.onEscape(event); if (!modifierPressed) {
handled = true; autoComplete.onEscape(event);
handled = true;
}
break; break;
default: default:
return; // don't preventDefault on anything else return; // don't preventDefault on anything else