Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* refactor(api): timeout variable property setter and getter are unnecessary as they add no logic. * refactor(api): early attribute access to improve readability move the case to handle a non-callable attribute first as all the other code is only relevant for the callable case. * fix: key-down / key-up discrepancy Versions before Qemu 2.12 (from ~2016) had a bug in handling keys requiring modifiers, e.g. Shift for upper-case letters: While the original VNC protocol was designed for remoting X11 applications, where high-level KeySyms are used (for example "Upper-case 'A'), Qemu (and other hardware virtualization tools) are required to translate that back into low-level KeyCode events: 1. Left-Shift down 2. 'A' down 3. 'A' up 4. Left-Shift up With the default `force_caps = False` this is fully done by Qemu, where version 2.8 shows the following bug: After sending a capital "A" even the next lower-case "a" is still received as an upper-case "A". This continues until the next upper-case letter is sent. With `force_capse = True` `vncdotool` does part of that translation and adds KeySyms for Shift-Down and Shift-Up itself, but reversed 3. and 4: 3. Left-Shift up 4. 'a' up Again this triggers a Qemu bug as now there is a discrepancy: 2. downs an *upper*-case "A" while 4. releases a *lower*-case "a". For `vndotool` is is irrelevant, but graphical VNC clients were affected. To not confuse Qemu release the keys in reverse order. Switch to logging the actual KeySyms sent to the VNC server.
- Loading branch information