[PATCH 3/6] user32: Add a default GetKeyboardLayout implementation.
Rémi Bernon
rbernon at codeweavers.com
Mon May 3 04:37:58 CDT 2021
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
dlls/user32/driver.c | 2 +-
dlls/user32/input.c | 6 +++++-
dlls/wineandroid.drv/keyboard.c | 20 --------------------
dlls/wineandroid.drv/wineandroid.drv.spec | 1 -
4 files changed, 6 insertions(+), 23 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index f683cf25b7e..efaa04db096 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -208,7 +208,7 @@ static INT CDECL nulldrv_GetKeyNameText( LONG lparam, LPWSTR buffer, INT size )
static HKL CDECL nulldrv_GetKeyboardLayout( DWORD thread_id )
{
- return 0;
+ return (HKL)~0; /* use default implementation */
}
static BOOL CDECL nulldrv_GetKeyboardLayoutName( LPWSTR name )
diff --git a/dlls/user32/input.c b/dlls/user32/input.c
index d3dcf375746..1f795e43545 100644
--- a/dlls/user32/input.c
+++ b/dlls/user32/input.c
@@ -1083,7 +1083,11 @@ UINT WINAPI GetKBCodePage(void)
*/
HKL WINAPI GetKeyboardLayout(DWORD thread_id)
{
- return USER_Driver->pGetKeyboardLayout(thread_id);
+ HKL layout;
+
+ if ((layout = USER_Driver->pGetKeyboardLayout( thread_id )) != (HKL)~0) return layout;
+
+ return get_locale_kbd_layout();
}
/****************************************************************************
diff --git a/dlls/wineandroid.drv/keyboard.c b/dlls/wineandroid.drv/keyboard.c
index 04565c3fad8..803f13d8f39 100644
--- a/dlls/wineandroid.drv/keyboard.c
+++ b/dlls/wineandroid.drv/keyboard.c
@@ -878,26 +878,6 @@ UINT CDECL ANDROID_MapVirtualKeyEx( UINT code, UINT maptype, HKL hkl )
}
-/***********************************************************************
- * ANDROID_GetKeyboardLayout
- */
-HKL CDECL ANDROID_GetKeyboardLayout( DWORD thread_id )
-{
- ULONG_PTR layout = GetUserDefaultLCID();
- LANGID langid;
- static int once;
-
- langid = PRIMARYLANGID(LANGIDFROMLCID( layout ));
- if (langid == LANG_CHINESE || langid == LANG_JAPANESE || langid == LANG_KOREAN)
- layout = MAKELONG( layout, 0xe001 ); /* IME */
- else
- layout |= layout << 16;
-
- if (!once++) FIXME( "returning %lx\n", layout );
- return (HKL)layout;
-}
-
-
/***********************************************************************
* ANDROID_VkKeyScanEx
*/
diff --git a/dlls/wineandroid.drv/wineandroid.drv.spec b/dlls/wineandroid.drv/wineandroid.drv.spec
index 6f27c1586b3..d79665ecc72 100644
--- a/dlls/wineandroid.drv/wineandroid.drv.spec
+++ b/dlls/wineandroid.drv/wineandroid.drv.spec
@@ -5,7 +5,6 @@
# USER driver
@ cdecl GetKeyNameText(long ptr long) ANDROID_GetKeyNameText
-@ cdecl GetKeyboardLayout(long) ANDROID_GetKeyboardLayout
@ cdecl MapVirtualKeyEx(long long long) ANDROID_MapVirtualKeyEx
@ cdecl VkKeyScanEx(long long) ANDROID_VkKeyScanEx
@ cdecl SetCursor(long) ANDROID_SetCursor
--
2.31.0
More information about the wine-devel
mailing list