mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Merge pull request #5565 from Tyriar/2797
Support ctrl+^ -> RS, move to physical key
This commit is contained in:
@@ -350,7 +350,15 @@ describe('Keyboard', () => {
|
||||
});
|
||||
|
||||
it('should return proper sequence for ctrl+@', () => {
|
||||
assert.equal(testEvaluateKeyboardEvent({ ctrlKey: true, shiftKey: true, keyCode: 50, key: '@' }).key, '\x00');
|
||||
assert.equal(testEvaluateKeyboardEvent({ ctrlKey: true, shiftKey: true, keyCode: 50, code: 'Digit2', key: '@' }).key, '\x00');
|
||||
});
|
||||
|
||||
it('should return proper sequence for ctrl+^', () => {
|
||||
assert.equal(testEvaluateKeyboardEvent({ ctrlKey: true, shiftKey: true, keyCode: 54, code: 'Digit6', key: '^' }).key, '\x1e');
|
||||
});
|
||||
|
||||
it('should return proper sequence for ctrl+_', () => {
|
||||
assert.equal(testEvaluateKeyboardEvent({ ctrlKey: true, shiftKey: true, keyCode: 189, code: 'Minus', key: '_' }).key, '\x1f');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -360,12 +360,11 @@ export function evaluateKeyboardEvent(
|
||||
// Include only keys that that result in a _single_ character; don't include num lock,
|
||||
// volume up, etc.
|
||||
result.key = ev.key;
|
||||
} else if (ev.key && ev.ctrlKey) {
|
||||
if (ev.key === '_') { // ^_
|
||||
result.key = C0.US;
|
||||
}
|
||||
if (ev.key === '@') { // ^ + shift + 2 = ^ + @
|
||||
result.key = C0.NUL;
|
||||
} else if (ev.key && ev.ctrlKey && ev.shiftKey) {
|
||||
switch (ev.code) {
|
||||
case 'Minus': result.key = C0.US; break; // ^_ (Ctrl+Shift+-_
|
||||
case 'Digit2': result.key = C0.NUL; break; // ^@ (Ctrl+Shift+2)
|
||||
case 'Digit6': result.key = C0.RS; break; // ^^ (Ctrl+Shift+6)
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user