Skip to content

Commit b9fa531

Browse files
committed
Fix kitty modifier events when only flag 2 is used
Fixes #5687
1 parent e14746e commit b9fa531

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

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)