Handle broken numpad delete key in Chrome

This commit is contained in:
Pierre Ossman 2019-10-31 14:51:36 +01:00 committed by Lauri Kasanen
parent e497b53d09
commit dc3ddc8efc
2 changed files with 8 additions and 0 deletions

View File

@ -103,6 +103,11 @@ export function getKey(evt) {
case 'UIKeyInputEscape': return 'Escape';
}
// Broken behaviour in Chrome
if ((evt.key === '\x00') && (evt.code === 'NumpadDecimal')) {
return 'Delete';
}
// IE and Edge have broken handling of AltGraph so we cannot
// trust them for printable characters
if ((evt.key.length !== 1) || (!browser.isIE() && !browser.isEdge())) {

View File

@ -110,6 +110,9 @@ describe('Helpers', function () {
expect(KeyboardUtil.getKey({key: 'Win'})).to.be.equal('Meta');
expect(KeyboardUtil.getKey({key: 'UIKeyInputLeftArrow'})).to.be.equal('ArrowLeft');
});
it('should handle broken Delete', function () {
expect(KeyboardUtil.getKey({key: '\x00', code: 'NumpadDecimal'})).to.be.equal('Delete');
});
it('should use code if no key', function () {
expect(KeyboardUtil.getKey({code: 'NumpadBackspace'})).to.be.equal('Backspace');
});