dinput: the DIK_ keycode is not the same as the scancode.

Aric Stewart aric at codeweavers.com
Wed Aug 6 08:04:36 CDT 2008


It is mapped with the keyboard mapping to the resulting character. so 
the key 'A' is DIK_A nomatter what its scancode or vkey would be. This 
is relevent to Japanese keymapping where the '@' key is in the '[' 
location the scancode for both is 0x22 but dinput generates DIK_AT in 
japanese and DIK_LBRACKET in us_qwerty

Alexandre told me he did not like or approve of the table being 
initialized at startup and felt that looking it up with each keystroke 
was the only correct way.
MapVirtualKeyA is not a very costly function. I resolves basicaly to a 
table lookup in winex11.drv so no interactions with the xserver at all.
---
  dlls/dinput/keyboard.c |   26 +++++++++++++++++++++++++-
  1 files changed, 25 insertions(+), 1 deletions(-)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 9404bfa6a4a5647fdcf0c9e056cbc86de443ad4c.diff
Type: text/x-patch
Size: 1722 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080806/d952efd7/attachment.bin 


More information about the wine-patches mailing list