diff --git a/guacamole-common-js/src/main/webapp/modules/Keyboard.js b/guacamole-common-js/src/main/webapp/modules/Keyboard.js index 62d709cb94..0619150185 100644 --- a/guacamole-common-js/src/main/webapp/modules/Keyboard.js +++ b/guacamole-common-js/src/main/webapp/modules/Keyboard.js @@ -1362,6 +1362,15 @@ Guacamole.Keyboard = function Keyboard(element) { e.preventDefault(); + // If unreliable caps lock was pressed and event was not marked, then + // we need to pretend that this is a keydown event because we obviously + // did not receive it (issue on macos with chrome) + if (e.keyCode == 20 && quirks.capsLockKeyupUnreliable) { + eventLog.push(new KeydownEvent(e)); + interpret_events(); + return; + } + // Log event, call for interpretation eventLog.push(new KeyupEvent(e)); interpret_events();