www.cendio.com
Bug 7416 - pressing both shift keys on Windows wedges shift state
: pressing both shift keys on Windows wedges shift state
Status: CLOSED FIXED
: ThinLinc
Web Access
: trunk
: PC Unknown
: P2 Normal
: 4.11.0
Assigned To:
:
:
: 5229
: 3523
  Show dependency treegraph
 
Reported: 2019-10-31 11:18 by
Modified: 2019-11-04 17:16 (History)
Acceptance Criteria:


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From cendio 2019-10-31 11:18:24
Pressing both the left and right shift key on Windows and then releasing them
results in shift getting stuck. This is an OS level bug where one release event
goes missing. We have implemented a workaround in TigerVNC (see bug 5229), but
not in Web Access.
------- Comment #1 From cendio 2019-11-04 10:26:14 -------
Fixed upstream:

https://github.com/novnc/noVNC/commit/ccb511a527a693d0de0ad58b430f73aa2fb74344
------- Comment #3 From cendio 2019-11-04 17:11:31 -------
Fixed with vendordrop.
------- Comment #4 From cendio 2019-11-04 17:11:52 -------
Verified that the problem existed in Chrome 78 on Windows 10 with build 6285:

 Shift L down -> Shift R down -> Shift L up -> Shift R up

resulted in the session to:

 Shift L down -> Shift R down -> Shift R up

After upgrading to a fixed webaccess package, I have verified that it's better
now with Chrome, Firefox, and IE, I get:

 Shift L down -> Shift R down -> Shift L up -> Shift R up

results in the session to:

 Shift L down -> Shift R down -> Shift R up -> Shift L up

Note that the order of key releases is not perfect above, the reality is that
we don't get the "Shift L up" until Shift R has been released. We don't get any
events from windows at all, so this is the best we can do. At least it doesn't
get stuck now.

Edge, however, does seem to have proper detection for this at the moment and
doesn't need the workaround. Our workaround makes things worse actually, we
get:

 Shift L down -> Shift R down -> Shift L up -> Shift R up-> Shift R down ->
Shift R up

But, Edge is on it's way to the grave so we have decided to not care about this
for now.