]> git.proxmox.com Git - mirror_novnc.git/commitdiff
Handle broken numpad delete key in Chrome
authorPierre Ossman <ossman@cendio.se>
Thu, 31 Oct 2019 13:51:36 +0000 (14:51 +0100)
committerPierre Ossman <ossman@cendio.se>
Thu, 31 Oct 2019 13:51:36 +0000 (14:51 +0100)
core/input/util.js
tests/test.helper.js

index 179f7ee285c07f7c8ecc31ab33696292c9af889b..b0e8855abe92c7ca3ec4fcd0623abdbc025534ed 100644 (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())) {
index 5b58a83103c96a385e8f3bc3b0125c27d152da61..70eba1bbdb7716fd8f6390696fe915e01db77391 100644 (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');
         });