Skip to content

Commit c6a572f

Browse files
authored
Merge pull request xtermjs#5688 from Tyriar/5687
Fix kitty modifier events when only flag 2 is used
2 parents e14746e + b9fa531 commit c6a572f

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/common/input/KittyKeyboard.test.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,11 +474,25 @@ describe('KittyKeyboard', () => {
474474
});
475475

476476
it('modifier key release includes its own bit cleared', () => {
477-
const result = kitty.evaluate(createEvent({ key: 'Shift', code: 'ShiftLeft', shiftKey: false }), flags, KittyKeyboardEventType.RELEASE);
477+
const result = kitty.evaluate(createEvent({ key: 'Shift', code: 'ShiftLeft', shiftKey: false }), flags | KittyKeyboardFlags.REPORT_ALL_KEYS_AS_ESCAPE_CODES, KittyKeyboardEventType.RELEASE);
478478
assert.strictEqual(result.key, '\x1b[57441;1:3u');
479479
});
480480
});
481481

482+
describe('modifier-only reporting', () => {
483+
const flags = KittyKeyboardFlags.REPORT_EVENT_TYPES;
484+
485+
it('does not report modifier press without REPORT_ALL_KEYS_AS_ESCAPE_CODES', () => {
486+
const result = kitty.evaluate(createEvent({ key: 'Shift', code: 'ShiftLeft', shiftKey: true }), flags);
487+
assert.strictEqual(result.key, undefined);
488+
});
489+
490+
it('does not report modifier release without REPORT_ALL_KEYS_AS_ESCAPE_CODES', () => {
491+
const result = kitty.evaluate(createEvent({ key: 'Shift', code: 'ShiftLeft', shiftKey: false }), flags, KittyKeyboardEventType.RELEASE);
492+
assert.strictEqual(result.key, undefined);
493+
});
494+
});
495+
482496
describe('REPORT_ALL_KEYS_AS_ESCAPE_CODES flag', () => {
483497
const flags = KittyKeyboardFlags.REPORT_ALL_KEYS_AS_ESCAPE_CODES;
484498

src/common/input/KittyKeyboard.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ export class KittyKeyboard {
418418
return result;
419419
}
420420

421-
if (isMod && !(flags & KittyKeyboardFlags.REPORT_ALL_KEYS_AS_ESCAPE_CODES) && !reportEventTypes) {
421+
if (isMod && !(flags & KittyKeyboardFlags.REPORT_ALL_KEYS_AS_ESCAPE_CODES)) {
422422
return result;
423423
}
424424

0 commit comments

Comments
 (0)