[
https://issues.apache.org/jira/browse/GUACAMOLE-859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16910033#comment-16910033
]
Weston Thayer commented on GUACAMOLE-859:
-----------------------------------------
I just found some issues with this fix while testing locally:
# On MacOS Chrome and Safari for the Caps Lock key, keydown is only sent when
turning it ON. When the key is pressed again to turn OFF, those browsers send
keyup. In contrast Firefox sends keydown no matter what. Since
Guacamole.Keyboard's capsLockKeyupUnreliable quirk only works on a keydown,
it's possible for Caps Lock state to get out of sync on MacOS Chrome and Safari
# This matter is made worse because Guacamole.Keyboard.syncModifierStates does
not take Caps Lock into account, so another key stroke won't fix the mismatch
in Caps Lock state between local and remote machines
# A previously existing issue confuses things further — when Caps Lock was on
in MacOS Chrome, it *appeared* to work fine (ALL CAPS showed up on the remote
Windows machine), but this wasn't because Windows's Caps Lock key was on. It
was because guacd's RDP plugin was automatically pressing Shift before sending
the pressed key so it would be capitalized. On MacOS Chrome, turning Caps Lock
off again doesn't have the intended effect because of issue #1
The fix I made for this issue gets us closer to the right thing happening, but
I now realize there's more work. Would you like me to combine these problems in
one issue or tackle each separately?
> Incorrect Caps Lock keysym sent to Windows via RDP
> --------------------------------------------------
>
> Key: GUACAMOLE-859
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-859
> Project: Guacamole
> Issue Type: Bug
> Affects Versions: 1.0.0
> Environment: macOS Mojave
> Windows 10
> Reporter: Weston Thayer
> Priority: Minor
> Fix For: 1.2.0
>
>
> 1. On a Mac, connect to a Windows machine via an RDP connection in Guacamole
> 2. On the Windows machine, open Chrome or Firefox and navigate to
> https://jsbin.com/reviciceke/2/edit?js,console,output
> 3. Click the "Run with JS" button
> 4. Click the output pane to make sure it has keyboard focus
> 5. Press the Caps Lock key on your Mac (you may need to press it twice if
> it's already on)
> Actual: The JSBin's console outputs KeyboardEvent.code and KeyboardEvent.key
> for the "keypress" event. Note how KeyboardEvent.code is an empty string and
> KeyboardEvent.key is "Unidentified"
> Expected: KeyboardEvent.code should be "CapsLock", as should KeyboardEvent.key
> I believe the keysym being sent by guacamole-common-js's Keyboard.js is
> 0xffe5. I'm guessing the guacd RDP plugin has a bug, where that keysym is not
> mapped to the correct RDP scancode(?).
> For reference, using Microsoft's RDP client for macOS, KeyboardEvent.code and
> key are correctly "CapsLock".
> Note that this bug probably went un-noticed for a long time because Caps Lock
> still "works" in that future characters typed are capitalized. But in my use
> case, I need Windows to handle the Caps Lock key down itself.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)