X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/371412145fdcff75d46401eb7fcffdc047f195cb..1244d2e07fd3ddf1123613d54ae3ae3503256119:/src/msw/uiaction.cpp diff --git a/src/msw/uiaction.cpp b/src/msw/uiaction.cpp index d8f498cbd8..eb5bfd1e34 100644 --- a/src/msw/uiaction.cpp +++ b/src/msw/uiaction.cpp @@ -16,9 +16,10 @@ #if wxUSE_UIACTIONSIMULATOR #include "wx/uiaction.h" -#include "wx/window.h" //for wxCharCodeWXToMSW #include "wx/msw/wrapwin.h" +#include "wx/msw/private/keyboard.h" + namespace { @@ -74,8 +75,16 @@ bool wxUIActionSimulator::MouseUp(int button) bool wxUIActionSimulator::DoKey(int keycode, int WXUNUSED(modifiers), bool isDown) { - DWORD vkkeycode = wxCharCodeWXToMSW(keycode); - keybd_event(vkkeycode, 0, isDown ? 0 : KEYEVENTF_KEYUP, 0); + bool isExtended; + DWORD vkkeycode = wxMSWKeyboard::WXToVK(keycode, &isExtended); + + DWORD flags = 0; + if ( isExtended ) + flags |= KEYEVENTF_EXTENDEDKEY; + if ( !isDown ) + flags |= KEYEVENTF_KEYUP; + + keybd_event(vkkeycode, 0, flags, 0); return true; }