After some digging, it seems that windows itself is responsible for that
bug. On international keyboards, it tend to send "Ctrl" and "Alt"
instead of "AltGr" keycode.
A possible patch would be to add an option to QEMU command line to
handle Ctrl and Alt keystrokes being pressed at the same time as
xev log using ubuntu host and debian virtual machine for pressing altgr
+ < key to obtain "|" using german layout :
KeyPress event, serial 43, synthetic NO, window 0x161,
root 0x43, subw 0x0, time 4278157, (165,-105), root:(446,164),
state 0x0, keycode 108 (keysym 0xfe03, ISO_Level3_Sh
Additional :
Running the same debian virtual machine under Linux host where "AltGr+<" in
order to get "|" on german keyboard seems to work properly, I get the following
result running sendkey in console :
Keycode 28 released;
Keycode 100 pressed;
Keycode 86 pressed;
Keycode 86 released;
Keycode
Affects as well Win8.1 as Host System and Debian as Client, tested with
latest qemu 2.1.50 (fetched from git).
Debian : 3.2.0-4-vexpress #1 SMP Debian 3.2.57-3 armv71
with startup parameters :
h:\qemu\test\qemu-system-armw" -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress
-initrd initrd.img-3.2.