At 06:04 AM 12/8/00 -0500, you wrote:
<snip>
>Agent 16: I cannot get any "@" into it. Someone has broken the keyboard
>definitions (up from 2000-11-25 2:00 to 2000-12-02 on any date).
It's the same for me with any program in fact.
Could you test the following patch on your system to see if it's
the same problem ?
--- keyboard.c.orig Wed Nov 29 02:36:35 2000
+++ keyboard.c Sat Dec 9 23:31:40 2000
@@ -1543,18 +1543,6 @@
ret = 0;
}
- /* more areas where X returns characters but Windows does not
- CTRL + number or CTRL + symbol*/
- if (lpKeyState[VK_CONTROL] & 0x80)
- {
- if (((keysym>=33) && (keysym < 'A')) ||
- ((keysym > 'Z') && (keysym < 'a')))
- {
- *(char*)lpChar = 0;
- ret = 0;
- }
- }
-
/* We have another special case for delete key (XK_Delete) on an
extended keyboard. X returns a char for it, but Windows doesn't */
if (keysym == XK_Delete)
I think it's best to give the additional information (for the people using
an US keyboard) that with a french keyboard - and I *guess* with a
german keyboard too, the @ key is obtained with Alt Gr, specifically
Alt Gr 0 (VK0 - the one that is not on the numeric pad)
Call user32.605: TranslateMessage(40576e3c) ret=004205aa fs=008f
trace:key:MSG_DoTranslateMessage (WM_KEYDOWN, 0030, 000B0001)
trace:key:MSG_DoTranslateMessage Translating key VK_0 (0030), scancode 0b
Call x11drv.30: ToUnicode(00000030,0000000b,40758e80,40576d48,00000002,00000000)
ret=40704289 fs=008f
trace:key:X11DRV_ToUnicode (0030, 000B) : faked state = 2010
trace:keyboard:X11DRV_ToUnicode Found keycode 19 (0x13)
trace:key:X11DRV_ToUnicode XLookupString error for 13
trace:key:X11DRV_ToUnicode more areas for bugs
trace:key:X11DRV_ToUnicode ToUnicode about to return 0 with char 8770
I don't understand why the VK_CONTROL flag is set in this case -
to get this key I have certainly not to press the control key.
What's is obvious is that bufW is never set and the returned value
(8770) is whatever garbage was passed by the caller .
Any keyboard expert out there ?
Gerard