http://bugs.winehq.org/show_bug.cgi?id=15203
--- Comment #8 from Fábio Capela fabio.capela@yahoo.com 2008-09-11 07:46:28 --- (In reply to comment #7)
(In reply to comment #5)
(In reply to comment #4)
Neither Mode_switch nor ISO_Level3_Shift are guaranteed to be generated by pressing Right Alt, in fact, it's all keyboard mapping dependent.
The same can be said for XK_Alt_R; relying on keysyms to detect the right alt key might not be the best way.
I'd say that relying on keysyms is the only way to handle keyboard events properly.
I stand corrected on this; as I said in my previous comment, I don't think anymore it's wise to attribute the right alt's VK to either Mode_switch or ISO_Level3_Shift. I think I'll just use a custom xmodmap config when using programs under wine that need that second alt key.
Besides, Mode_switch is currently being treated by Wine as the right alt key, at least so far as the scancode is concerned; see the entry for 0xff7e in the nonchar_key_scan array, located in dlls/winex11.drv/keyboard.c .
That's apparently a bug in nonchar_key_scan array, it's supposed to match nonchar_key_vkey, and besides that line is under the /* keypad keys */ comment, which clearly marks where that keys belong to.
If you take /usr/include/X11/keysymdef.h as a reference, that comment should be right before the /* FF80 */ line, not the /* FF78 */ one.
As for why it don't match, I would guess someone before me had this same idea of forcing the physical right alt key to always behave the way windows expects it to behave; that or else someone was peeved that the Mode_switch key was being translated to a key with scancode 0, and since Mode_switch was mapped to the right alt key in his system, decided to assign the same scancode.
My Ubuntu 7.04 generates XK_Alt_R when I press right Alt key, do you have some custom xmodmap config, or a keyboard layout manager?
None that I remember or could find in my list of installed packages (although this system originally was either an Ubuntu 7.04 or Ubuntu 6.10, and before the G15 keyboard was supported I had to mess with the keyboard mapping to get it's multimedia keys to work; even though I tried to undo all my changes when the G15 became supported, there could be leftover bits from older versions on the config files).
A question, what are the keys you have to press to get symbols that are not in the keyface, such as Æ? Maybe the default key to enter the third shift state has been changed since 7.04, or you are using a mapping without third (or higher) shift state.
From what I saw on other mailing list archives, it seems that other distros
also map ISO_Level3_Shift to the right alt key, at least current debian seems to do so; it seems this keysym is now the recommended one to reach the third and fourth symbols associated with a single key.