Merge pull request #1647 from weaveworks/1403-terminal-us-intl-kb-support

Support single/double quote key on us-intl keyboards in terminal
This commit is contained in:
Simon
2016-07-20 13:34:30 +02:00
committed by GitHub
2 changed files with 16 additions and 0 deletions

View File

@@ -56,6 +56,7 @@ class App extends React.Component {
onKeyUp(ev) {
const { showingTerminal } = this.props;
keyPressLog('onKeyUp', 'keyCode', ev.keyCode, ev);
// don't get esc in onKeyPress
if (ev.keyCode === ESC_KEY_CODE) {

View File

@@ -2757,6 +2757,21 @@ Terminal.prototype.keyDown = function(ev) {
key = '\x1b[24~';
break;
default:
// Special case for US-intl
// Firefox leaves ev.key empty, Chrome sets it to "Dead"
if (!ev.key || ev.key === 'Dead') {
if (ev.keyCode === 54) {
key = ev.shiftKey ? '^' : '6';
break;
} else if (ev.keyCode === 192) {
key = ev.shiftKey ? '~' : '`';
break;
} else if (ev.keyCode === 222) {
key = ev.shiftKey ? '"' : "'";
break;
}
}
// a-z and space
if (ev.ctrlKey) {
if (ev.keyCode >= 65 && ev.keyCode <= 90) {