]> git.proxmox.com Git - mirror_novnc.git/commitdiff
Handle iOS special keys
authorPierre Ossman <ossman@cendio.se>
Wed, 21 Jun 2017 12:02:24 +0000 (14:02 +0200)
committerPierre Ossman <ossman@cendio.se>
Wed, 21 Jun 2017 12:02:24 +0000 (14:02 +0200)
core/input/util.js
tests/test.helper.js

index 4335b0bfe48d59eb4daf9e4eca23157a3141480d..78a829c8bf4c6a2a43fc75c5da793cf792cb733c 100644 (file)
@@ -103,6 +103,15 @@ export function getKey(evt) {
             case 'OS': return 'Meta';
         }
 
+        // iOS leaks some OS names
+        switch (evt.key) {
+            case 'UIKeyInputUpArrow': return 'ArrowUp';
+            case 'UIKeyInputDownArrow': return 'ArrowDown';
+            case 'UIKeyInputLeftArrow': return 'ArrowLeft';
+            case 'UIKeyInputRightArrow': return 'ArrowRight';
+            case 'UIKeyInputEscape': return 'Escape';
+        }
+
         // IE and Edge have broken handling of AltGraph so we cannot
         // trust them for printable characters
         if ((evt.key.length !== 1) || (!isIE() && !isEdge())) {
index e3bf8ac1b0862c28078fee199ead686385e0b5ea..aa64e9550edc3f6c3c8694fa36d5be0ca837c4ae 100644 (file)
@@ -115,6 +115,7 @@ describe('Helpers', function() {
             expect(KeyboardUtil.getKey({key: 'Left'})).to.be.equal('ArrowLeft');
             expect(KeyboardUtil.getKey({key: 'OS'})).to.be.equal('Meta');
             expect(KeyboardUtil.getKey({key: 'Win'})).to.be.equal('Meta');
+            expect(KeyboardUtil.getKey({key: 'UIKeyInputLeftArrow'})).to.be.equal('ArrowLeft');
         });
         it('should use code if no key', function() {
             expect(KeyboardUtil.getKey({code: 'NumpadBackspace'})).to.be.equal('Backspace');