Module: wine Branch: master Commit: 86b82b8f73f749fe59a007710c52ee0c91375b2c URL: http://source.winehq.org/git/wine.git/?a=commit;h=86b82b8f73f749fe59a007710c...
Author: Hans Leidekker hans@codeweavers.com Date: Fri Jun 9 09:21:15 2017 +0200
wineandroid: Implement VkKeyScanEx.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wineandroid.drv/keyboard.c | 29 +++++++++++++++++++++++++++++ dlls/wineandroid.drv/wineandroid.drv.spec | 1 + 2 files changed, 30 insertions(+)
diff --git a/dlls/wineandroid.drv/keyboard.c b/dlls/wineandroid.drv/keyboard.c index 81af8e3..741b76a 100644 --- a/dlls/wineandroid.drv/keyboard.c +++ b/dlls/wineandroid.drv/keyboard.c @@ -616,6 +616,23 @@ static const struct { VK_OEM_PERIOD, "." }, };
+static const SHORT char_vkey_map[] = +{ + 0x332, 0x241, 0x242, 0x003, 0x244, 0x245, 0x246, 0x247, 0x008, 0x009, + 0x20d, 0x24b, 0x24c, 0x00d, 0x24e, 0x24f, 0x250, 0x251, 0x252, 0x253, + 0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25a, 0x01b, 0x2dc, 0x2dd, + 0x336, 0x3bd, 0x020, 0x131, 0x1de, 0x133, 0x134, 0x135, 0x137, 0x0de, + 0x139, 0x130, 0x138, 0x1bb, 0x0bc, 0x0bd, 0x0be, 0x0bf, 0x030, 0x031, + 0x032, 0x033, 0x034, 0x035, 0x036, 0x037, 0x038, 0x039, 0x1ba, 0x0ba, + 0x1bc, 0x0bb, 0x1be, 0x1bf, 0x132, 0x141, 0x142, 0x143, 0x144, 0x145, + 0x146, 0x147, 0x148, 0x149, 0x14a, 0x14b, 0x14c, 0x14d, 0x14e, 0x14f, + 0x150, 0x151, 0x152, 0x153, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159, + 0x15a, 0x0db, 0x0dc, 0x0dd, 0x136, 0x1bd, 0x0c0, 0x041, 0x042, 0x043, + 0x044, 0x045, 0x046, 0x047, 0x048, 0x049, 0x04a, 0x04b, 0x04c, 0x04d, + 0x04e, 0x04f, 0x050, 0x051, 0x052, 0x053, 0x054, 0x055, 0x056, 0x057, + 0x058, 0x059, 0x05a, 0x1db, 0x1dc, 0x1dd, 0x1c0, 0x208 +}; + static UINT scancode_to_vkey( UINT scan ) { UINT j; @@ -904,3 +921,15 @@ HKL CDECL ANDROID_GetKeyboardLayout( DWORD thread_id ) FIXME( "returning %lx\n", layout ); return (HKL)layout; } + + +/*********************************************************************** + * ANDROID_VkKeyScanEx + */ +SHORT CDECL ANDROID_VkKeyScanEx( WCHAR ch, HKL hkl ) +{ + SHORT ret = -1; + if (ch < sizeof(char_vkey_map) / sizeof(char_vkey_map[0])) ret = char_vkey_map[ch]; + TRACE_(key)( "ch %04x hkl %p -> %04x\n", ch, hkl, ret ); + return ret; +} diff --git a/dlls/wineandroid.drv/wineandroid.drv.spec b/dlls/wineandroid.drv/wineandroid.drv.spec index bd42cb1..918140f 100644 --- a/dlls/wineandroid.drv/wineandroid.drv.spec +++ b/dlls/wineandroid.drv/wineandroid.drv.spec @@ -8,6 +8,7 @@ @ cdecl GetKeyboardLayout(long) ANDROID_GetKeyboardLayout @ cdecl MapVirtualKeyEx(long long long) ANDROID_MapVirtualKeyEx @ cdecl ToUnicodeEx(long long ptr ptr long long long) ANDROID_ToUnicodeEx +@ cdecl VkKeyScanEx(long long) ANDROID_VkKeyScanEx @ cdecl EnumDisplayMonitors(long ptr ptr long) ANDROID_EnumDisplayMonitors @ cdecl GetMonitorInfo(long ptr) ANDROID_GetMonitorInfo @ cdecl CreateWindow(long) ANDROID_CreateWindow