In Beta5 there is still an annoying bug with the Italian keyboard layout. The same problem appears on MS Remote Desktop Connection. Let me explain in full, since I have done some debugging on this:
* The problem manifest itself as a misplaced key (the "<>" key placed right before the "Z" key) that works as if it was the "\|" key, and a completely dead key (the "\|" key placed right before the "1" key).
* Using Ukulele under OSX, I see that the raw scancodes for these keys are (in decimal format): 10 for the "\|" key and 50 for the "<>" key.
* On OSX you can have 3 types of keyboard: ANSI (the standard US keyboard), ISO (for example the italian keyboard) and JAP (the Kanji keyboard, I presume). On the ANSI keyboard, the raw scancode 50 is assigned to the key right before the "1" key and the scancode 10 is not present on the keyboard. On the ANSI keyboard, the raw scancode 50 is assigned to the key right before "Z" and the raw scancode 10 is assigned to the key right before the "1" key. Notice that the raw scancode 50 changes physical location in the two layouts: this could be the cause of the swapped keystrokes.
* Using another tool under the virtualized XP, I see that the raw scancode 50 is not reaching the virtualized OS, i.e. no keydown event is generated on Windows.
My guess is that Paralles code is reading the keystrokes without discriminating between ANSI and ISO layouts, and so the missing key on the ANSI layout is not recognised as a valid keystroke, and the swapped key is sent with the wrong raw scancode.
Hope this helps fixing the problem. I can run test programs for keystroke handling for you, if you don't have an italian keyboard handy.
* The problem manifest itself as a misplaced key (the "<>" key placed right before the "Z" key) that works as if it was the "\|" key, and a completely dead key (the "\|" key placed right before the "1" key).
* Using Ukulele under OSX, I see that the raw scancodes for these keys are (in decimal format): 10 for the "\|" key and 50 for the "<>" key.
* On OSX you can have 3 types of keyboard: ANSI (the standard US keyboard), ISO (for example the italian keyboard) and JAP (the Kanji keyboard, I presume). On the ANSI keyboard, the raw scancode 50 is assigned to the key right before the "1" key and the scancode 10 is not present on the keyboard. On the ANSI keyboard, the raw scancode 50 is assigned to the key right before "Z" and the raw scancode 10 is assigned to the key right before the "1" key. Notice that the raw scancode 50 changes physical location in the two layouts: this could be the cause of the swapped keystrokes.
* Using another tool under the virtualized XP, I see that the raw scancode 50 is not reaching the virtualized OS, i.e. no keydown event is generated on Windows.
My guess is that Paralles code is reading the keystrokes without discriminating between ANSI and ISO layouts, and so the missing key on the ANSI layout is not recognised as a valid keystroke, and the swapped key is sent with the wrong raw scancode.
Hope this helps fixing the problem. I can run test programs for keystroke handling for you, if you don't have an italian keyboard handy.