summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2019-10-31 15:36:40 +0100
committerPierre Ossman <ossman@cendio.se>2019-10-31 15:36:40 +0100
commit8c51e9a8a28afb0a46570fa557dab511d4af6d15 (patch)
treed90b6db0083474e301aa27a78573e9aca0be1a77
parent9d956e919834ca0877f993d30a05cd8e3d182aca (diff)
downloadnovnc-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.js4
-rw-r--r--tests/test.keyboard.js48
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 () {