[virt-tools-list] Possible fix for Missing Characters @ (Alt-GR Q) and | (Alt-GR <) on german locale
Mattias Grönlund
mattias at gronlund.se
Sat May 11 09:30:49 UTC 2013
Running virt-viewer-x64-0.5.6.msi, on Windows 7, connecting to QEMU using
spice, AltGR key combinations fails (using Swedish keyboard layout both at
server and client).
I suspect that this is a variant of
https://bugzilla.redhat.com/show_bug.cgi?id=904092.
After some debugging, I realized that there is an extra VK_LCONTROL
keypress sent by Windows. This extra VK_LCONTROL will then make the key
e.g. AltGr-< actually be Control-AltGr-<, which is not interpreted as a |
sign.
So in spice-widget.c : keyboard_hook_cb(), I added SPICE_DEBUG lines which
printed out the hooked->scanCode, and realized that this extra VK_LCONTROL
has a very suspect scanCode with bit 9 set. If I instead press the left
Ctrl key, it will also emit VK_LCONTROL, but with bit 9 cleared.
So I just made sure that keyboard_hook_cb(), silently dropped these strange
VK_LCONTROL events, which seems to work for me.
case VK_NUMLOCK:
case VK_LSHIFT:
case VK_RSHIFT:
- case VK_LCONTROL:
case VK_RCONTROL:
case VK_LMENU:
case VK_RMENU:
break;
+ case VK_LCONTROL:
+ // When pressing AltGr, an extra VK_LCONTROL with a special
scancode with bit 9 set is sent.
+ // Lets ignore the extra VK_LCONTROL, as that will make AltGr
missbehave.
+ if (hooked->scanCode & 0x200)
+ return 1;
+ break;
default:
SendMessage(win32_window, wparam, hooked->vkCode, dwmsg);
return 1;
}
/Mattias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20130511/f9588fc1/attachment.htm>
More information about the virt-tools-list
mailing list