Fix virtual key mapping on MS Windows
authorJuan Luis Boya García <ntrrgc@gmail.com>
Wed, 16 Oct 2013 15:34:52 +0000 (17:34 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 25 Nov 2013 08:32:32 +0000 (09:32 +0100)
commit72f6bd8d51911f8a2a0dadc7fa10509fa86970a1
tree30337747795b6d2feb8bde381569e324a2176d10
parent106335e4659530125faf8cce62e3367e88ddae14
Fix virtual key mapping on MS Windows

In order to map MS Windows virtual keys to Qt keys without messing with
dead keys now I use the built-in keyMap structure of QWindowsKeyMapper
and assert every cell in the keymap is properly updated.

In order to guarantee this even when the user changes the keyboard
layout, WndProc now manages the WM_INPUTLANGCHANGE message, which is
handled by QWindowsKeyMapper, resetting the layout structure.

I don't fully understand yet some things about QWindowsKeyMapper, i.e.
how QWindowsKeyMapper::updatePossibleKeyCodes workarounds the dead key
issue with ToAscii; but it seems to work fine in all the tests I've
done. Any further testing is highly appreciated, though.

[ChangeLog][[QtGui][Platform Specific Changes][Windows] Fixed virtual key
mapping on Windows.

Task-number: QTBUG-33409
Task-number: QTBUG-8764
Task-number: QTBUG-10032

Change-Id: I4f7709a90906b03f4504deea1ff5c361e9f94b3f
(cherry picked from commit f0d014a16b5c9b55245834459c46ea34d15d14be)
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
src/corelib/kernel/qcoreapplication_win.cpp
src/gui/kernel/qkeymapper_win.cpp