Github user mike-jumper commented on a diff in the pull request: https://github.com/apache/guacamole-client/pull/227#discussion_r161618151 --- Diff: guacamole-common-js/src/main/webapp/modules/Keyboard.js --- @@ -55,6 +55,47 @@ Guacamole.Keyboard = function(element) { */ this.onkeyup = null; + /** + * Set of known platform-specific or browser-specific quirks which must be + * accounted for to properly interpret key events, even if the only way to + * reliably detect that quirk is to platform/browser-sniff. + * + * @private + * @type {Object.<String, Boolean>} + */ + var quirks = { + + /** + * Whether keyup events are universally unreliable. + * + * @type {Boolean} + */ + keyupUnreliable: false, + + /** + * Whether the Alt key is actually a modifier for typable keys and is + * thus never used for keyboard shortcuts. + * + * @type {Boolean} + */ + altIsTypableOnly: false + + }; + + // Set quirk flags depending on platform/browser, if such information is + // available + if (navigator && navigator.platform) { + + // All keyup events are unreliable on iOS (sadly) + if (navigator.platform.match(/ipad|iphone|ipod/i)) + quirks.keyupUnreliable = true; + + // The Alt key on Mac is never used for keyboard shortcuts + else if (navigator.platform.match(/^mac/i)) + quirks.altIsTypableOnly = true; + --- End diff -- This particular one shouldn't have any impact, as it's actually just a refactored approach to the same behavior handled previously: https://github.com/apache/guacamole-client/blob/c4ba495cca96f9823742083a8ecbaafb6be3c704/guacamole-common-js/src/main/webapp/modules/Keyboard.js#L187-L189 vs. https://github.com/apache/guacamole-client/blob/960e83f780425d93bf064f0187fd481cb848b150/guacamole-common-js/src/main/webapp/modules/Keyboard.js#L241-L242 The other `keyupUnreliable` quirk for iOS might impact keyboard shortcuts in general, though. I'll retest.
---