diff options
author | Pierre Ossman <ossman@cendio.se> | 2019-10-31 15:36:40 +0100 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2019-10-31 15:36:40 +0100 |
commit | 8c51e9a8a28afb0a46570fa557dab511d4af6d15 (patch) | |
tree | d90b6db0083474e301aa27a78573e9aca0be1a77 | |
parent | 9d956e919834ca0877f993d30a05cd8e3d182aca (diff) | |
download | novnc-8c51e9a8a28afb0a46570fa557dab511d4af6d15.tar.gz |
Revert iOS keyup workaround
It seems Apple has fixed their buggy keyup events, so remove the
workaround and allow keys to be kept pressed again.
This is a revert of 9e99ce126ca8f6f350fa015c0e58d35103c62f7e.
-rw-r--r-- | core/input/keyboard.js | 4 | ||||
-rw-r--r-- | tests/test.keyboard.js | 48 |
2 files changed, 1 insertions, 51 deletions
diff --git a/core/input/keyboard.js b/core/input/keyboard.js index 0f2a9de..764288a 100644 --- a/core/input/keyboard.js +++ b/core/input/keyboard.js @@ -118,9 +118,7 @@ export default class Keyboard { // We cannot handle keys we cannot track, but we also need // to deal with virtual keyboards which omit key info - // (iOS omits tracking info on keyup events, which forces us to - // special treat that platform here) - if ((code === 'Unidentified') || browser.isIOS()) { + if (code === 'Unidentified') { if (keysym) { // If it's a virtual keyboard then it should be // sufficient to just send press and release right diff --git a/tests/test.keyboard.js b/tests/test.keyboard.js index 331a85b..170149f 100644 --- a/tests/test.keyboard.js +++ b/tests/test.keyboard.js @@ -175,54 +175,6 @@ describe('Key Event Handling', function () { }; kbd._handleKeyDown(keyevent('keydown', {code: 'Unidentified', key: 'a'})); }); - - describe('iOS', function () { - let origNavigator; - beforeEach(function () { - // window.navigator is a protected read-only property in many - // environments, so we need to redefine it whilst running these - // tests. - origNavigator = Object.getOwnPropertyDescriptor(window, "navigator"); - if (origNavigator === undefined) { - // Object.getOwnPropertyDescriptor() doesn't work - // properly in any version of IE - this.skip(); - } - - Object.defineProperty(window, "navigator", {value: {}}); - if (window.navigator.platform !== undefined) { - // Object.defineProperty() doesn't work properly in old - // versions of Chrome - this.skip(); - } - - window.navigator.platform = "iPhone 9.0"; - }); - afterEach(function () { - Object.defineProperty(window, "navigator", origNavigator); - }); - - it('should fake keyup events on iOS', function (done) { - if (browser.isIE() || browser.isEdge()) this.skip(); - let count = 0; - const kbd = new Keyboard(document); - kbd.onkeyevent = (keysym, code, down) => { - switch (count++) { - case 0: - expect(keysym).to.be.equal(0x61); - expect(code).to.be.equal('KeyA'); - expect(down).to.be.equal(true); - break; - case 1: - expect(keysym).to.be.equal(0x61); - expect(code).to.be.equal('KeyA'); - expect(down).to.be.equal(false); - done(); - } - }; - kbd._handleKeyDown(keyevent('keydown', {code: 'KeyA', key: 'a'})); - }); - }); }); describe('Track Key State', function () { |