Keypress handling and VK_OEM_* constants -- Bug?


The “key is down” checking method in KeyPress (I forget the method’s exact name) was returning false when it shouldn’t for the ‘;’ key. That method has a locally-scoped array used in “translating” certain keys to VK_OEM_* constants. One example is ‘+’, which gets translated to VK_OEM_PLUS.

I looked at the header file where these VK_OEM_* constants are defined. (I forget the name of that file, also. winuser.h?) It turns out that there are some VK_OEM_* constants that aren’t handled in the method discussed above. One of these is VK_OEM_1, which refers to ‘;’ and ‘:’. I added this pair to the array and my problem went away.

Is there any reason why this and the other unhandled USian VK_OEM_* constants shouldn’t be in the translation array?


No reason, I guess I just missed those ones. Thanks for the heads-up, I’ll add it.