diff --git a/src/web-cef3/web.cpp b/src/web-cef3/web.cpp index 3f16891d051360a543af7ac34f4946da91c823a7..1e34e39fa2b347997b0c9f67f6e75223272fa4b7 100644 --- a/src/web-cef3/web.cpp +++ b/src/web-cef3/web.cpp @@ -620,10 +620,18 @@ void te4_web_inject_key(web_view_type *view, int scancode, int asymb, const char VkCode = VK_TAB; else if (key_code == SDLK_UP) VkCode = VK_UP; + else if (unilen == 1 && uni[0] >= '!' && uni[0] <= '@') + VkCode = uni[0]; + else if (unilen == 1 && uni[0] >= '[' && uni[0] <= '`') + VkCode = uni[0]; + else if (unilen == 1 && uni[0] >= '{' && uni[0] <= '~') + VkCode = uni[0]; else if (unilen == 1 && uni[0] >= 'A' && uni[0] <= 'Z') VkCode = uni[0]; else if (unilen == 1 && uni[0] >= 'a' && uni[0] <= 'z') VkCode = uni[0]; + else if (unilen == 1 && uni[0] >= 'a' && uni[0] <= 'z') + VkCode = uni[0]; else VkCode = LOBYTE(VkKeyScanA(key_code)); UINT scanCode = MapVirtualKey(VkCode, MAPVK_VK_TO_VSC);