Hi do you guys know anything about that already ? It looks like some keys are not mapped correctly:
grep -r VK_* * | grep include/winuser.h include/winuser.h:#define VK_LEFT 0x25 include/winuser.h:#define VK_UP 0x26 include/winuser.h:#define VK_RIGHT 0x27 include/winuser.h:#define VK_DOWN 0x28
These keys are the directional arrows, not the numpad keys...
Now look at what wine thinks about those keys when block num is not kicked in: tail -f /projects/tmp/winetrace.log | grep keyboard trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0000 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 83 (0x53) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff96 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0000 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 80 (0x50) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff97 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0000 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 85 (0x55) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff98 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0000 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 88 (0x58) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff99
Kickin'in the block num:
trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 100 (0x64) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff51 trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 98 (0x62) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff52 trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 102 (0x66) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff53 trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 104 (0x68) trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff54
What's wrong ? Oh, and this output is when using within a edit control. Last but not least, any test against VK_UP VK_DOWN, VK_LEFT, VK_RIGHT fails ... Regards.
George Ginden ha scritto:
Hi do you guys know anything about that already ? It looks like some keys are not mapped correctly:
Also this is related to bug #2742: http://bugs.winehq.org/show_bug.cgi?id=2742
"George Ginden" ginden@email.com wrote:
Hi do you guys know anything about that already ? It looks like some keys are not mapped correctly:
grep -r VK_* * | grep include/winuser.h include/winuser.h:#define VK_LEFT 0x25 include/winuser.h:#define VK_UP 0x26 include/winuser.h:#define VK_RIGHT 0x27 include/winuser.h:#define VK_DOWN 0x28
These keys are the directional arrows, not the numpad keys...
What exactly does look wrong for you? It all works as expected here. Add +key,+event in addition to +keyboard and post the results with explanations what really goes wrong.
Dmitry Timoshkov ha scritto:
What exactly does look wrong for you? It all works as expected here. Add +key,+event in addition to +keyboard and post the results with explanations what really goes wrong.
Well I may be wrong but :
VK_LEFT is #defined as 0x25
Now If I press the left arrow key, wine produces the following trace
trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 100 (0x64)
Shouldn't it be 0x25 ?? This is the same for the other arrow keys, the code defined is not the same as the code produced by the trace.
Also while coding in dlls/user/edit.c, the following 'if' just fails for the arrow keys: eg: if (key == VK_LEFT) printf ("left pressed\n");
Am I missing something ?
Thanks.
"George Ginden" ginden@email.com wrote:
VK_LEFT is #defined as 0x25
Now If I press the left arrow key, wine produces the following trace
trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 100 (0x64)
Shouldn't it be 0x25 ?? This is the same for the other arrow keys, the code defined is not the same as the code produced by the trace.
Also while coding in dlls/user/edit.c, the following 'if' just fails for the arrow keys: eg: if (key == VK_LEFT) printf ("left pressed\n");
Am I missing something ?
You are confusing X11 key codes with Win32 virtual key codes without understanding what each of them means.