]> git.saurik.com Git - wxWidgets.git/commit - interface/wx/event.h
Fixes to key codes in keyboard events generated by wxMSW.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 11 Sep 2010 10:18:47 +0000 (10:18 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 11 Sep 2010 10:18:47 +0000 (10:18 +0000)
commitb6885972eeaa04d4362950e0863e5e07da2770fd
treeb22123ce1b3ebc5c26d56f6e628593948a4797cb
parent86408a0374b40187afaecd6e28ed66dad06de102
Fixes to key codes in keyboard events generated by wxMSW.

Only set Unicode key code if the event corresponds to a character key and set
it to (newly added) WXK_NONE for the other ones to avoid nonsensical values in
it for e.g. "Home" key presses.

Also set non-Unicode key to WXK_NONE for the characters that can't be
represented in the current locale. This is consistent with wxGTK and avoids
conflicts between special key values and Unicode keys.

Clearly document the above behaviour.

Notice that implementing the correct behaviour in wxMSW involved untangling
previously interwoven WM_KEY{DOWN,UP} and WM_CHAR messages handlers. Clearly
separate them now as they get different input (key codes for the former,
characters for the latter) and especially don't try to convert from both kinds
of input using a single wxCharCodeMSWToWX() function. As this function doesn't
need to distinguish between keys and characters any more it can simply return
the converted value in all cases instead of returning 0 sometimes to indicate
a character value instead of a key. Simplify the code using this function
accordingly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
docs/changes.txt
include/wx/msw/window.h
interface/wx/event.h
samples/keyboard/keyboard.cpp
src/msw/combobox.cpp
src/msw/listctrl.cpp
src/msw/treectrl.cpp
src/msw/window.cpp