diff options
Diffstat (limited to 'unix/xserver/hw')
-rw-r--r-- | unix/xserver/hw/vnc/Input.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/unix/xserver/hw/vnc/Input.cc b/unix/xserver/hw/vnc/Input.cc index ca9bae3e..f36244a4 100644 --- a/unix/xserver/hw/vnc/Input.cc +++ b/unix/xserver/hw/vnc/Input.cc @@ -781,6 +781,16 @@ ModeSwitchFound: } } } +#else + /* + * If you would like to press a key which is already pressed then + * viewer didn't send the "release" event. In this case release it + * before the press. + */ + if (IS_PRESSED(keyc, kc) && down) { + vlog.debug("KeyRelease for %d wasn't sent, releasing", kc); + pressKey(keyboardDev, kc, false, "fixing keycode"); + } #endif if (maxKeysPerMod != 0) { |