GitHub user mike-jumper opened a pull request:

    https://github.com/apache/guacamole-client/pull/328

    GUACAMOLE-232: Address regressions in handling of keyboard modifiers.

    These changes address issues resulting from changes in 
[GUACAMOLE-232](https://issues.apache.org/jira/browse/GUACAMOLE-232), which 
introduced implicit handling of modifier states:
    
    * Implicitly pressed modifiers are not properly released after all other 
keys are released. For example, if an uppercase "A" is typed and the browser 
fires an "A" keydown event with the shift flag set, `Guacamole.Keyboard` would 
correctly infer the missing keydown event for shift, but the shift key would 
then be effectively stuck until some other key event occurs to release it. 
These changes automatically release all implicitly pressed keys if there are no 
explicitly pressed keys remaining.
    * The most recent keysym for a particular key code is given too much 
priority when the keysym is actually being correctly determined. We should rely 
on the most recent keysym only when the determined key is demonstrably 
incorrect.
    * Keys should only be implicitly pressed/released when the key event being 
handled is not already sufficient to *explicitly* press/release that key.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/mike-jumper/guacamole-client 
keyboard-regression

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/guacamole-client/pull/328.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #328
    
----
commit 035813ff0b8938b5fa999b017781a0548e7b710d
Author: Michael Jumper <mjumper@...>
Date:   2018-10-03T05:18:17Z

    GUACAMOLE-232: Take best guess of key being pressed/released into account 
before assuming modifier states need to be resynced.

commit 8c096778bc0235b2059495715fee91c31b719c67
Author: Michael Jumper <mjumper@...>
Date:   2018-10-03T05:19:15Z

    GUACAMOLE-232: Fall back to using recent keysym only after failing to 
determine released key by keycode.

commit 6f0787f0c13d187498ae0055c1963fe922832d19
Author: Michael Jumper <mjumper@...>
Date:   2018-10-03T05:19:40Z

    GUACAMOLE-232: Reset tracking of recent keysym after key is released.

commit 3246458a023f685693054303708bcaa13a5cdfbb
Author: Michael Jumper <mjumper@...>
Date:   2018-10-03T05:42:58Z

    GUACAMOLE-232: Track whether keys were pressed implicitly. Automatically 
release all keys if only implicitly pressed keys remain.

commit a57eaa6b323411f7a216682d38f61f6b92d3b901
Author: Michael Jumper <mjumper@...>
Date:   2018-10-03T06:01:10Z

    GUACAMOLE-232: Rely on recentKeysym for keyup only when the guessed key 
doesn't seem to actually be pressed.

----


---

Reply via email to