Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/user32/input.c | 19 ++++++++++++++++++ dlls/user32/user_main.c | 1 + dlls/user32/user_private.h | 2 ++ dlls/winex11.drv/keyboard.c | 39 ------------------------------------- 4 files changed, 22 insertions(+), 39 deletions(-)
diff --git a/dlls/user32/input.c b/dlls/user32/input.c index c447cb4b407..2ee1df729a5 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -114,6 +114,25 @@ static HKL get_locale_kbd_layout(void) }
+/********************************************************************** + * keyboard_init + */ +void keyboard_init(void) +{ + WCHAR layout[KL_NAMELENGTH]; + HKEY hkey; + + if (RegCreateKeyExW( HKEY_CURRENT_USER, L"Keyboard Layout\Preload", 0, NULL, 0, + KEY_ALL_ACCESS, NULL, &hkey, NULL )) + return; + + if (GetKeyboardLayoutNameW( layout )) + RegSetValueExW( hkey, L"1", 0, REG_SZ, (const BYTE *)layout, sizeof(layout) ); + + RegCloseKey( hkey ); +} + + /********************************************************************** * set_capture_window */ diff --git a/dlls/user32/user_main.c b/dlls/user32/user_main.c index c4c4853c213..303f19accfc 100644 --- a/dlls/user32/user_main.c +++ b/dlls/user32/user_main.c @@ -331,6 +331,7 @@ static BOOL process_attach(void) /* Setup palette function pointers */ palette_init();
+ keyboard_init(); return TRUE; }
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h index c31281b43e5..1c7ac3355bc 100644 --- a/dlls/user32/user_private.h +++ b/dlls/user32/user_private.h @@ -242,6 +242,8 @@ struct hardware_msg_data; extern BOOL rawinput_from_hardware_message(RAWINPUT *rawinput, const struct hardware_msg_data *msg_data); extern struct rawinput_thread_data *rawinput_thread_data(void);
+extern void keyboard_init(void) DECLSPEC_HIDDEN; + extern void CLIPBOARD_ReleaseOwner( HWND hwnd ) DECLSPEC_HIDDEN; extern BOOL FOCUS_MouseActivate( HWND hwnd ) DECLSPEC_HIDDEN; extern BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ) DECLSPEC_HIDDEN; diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c index d189f95a7d1..7cf2d84ac3c 100644 --- a/dlls/winex11.drv/keyboard.c +++ b/dlls/winex11.drv/keyboard.c @@ -1563,43 +1563,6 @@ static HKL get_locale_kbd_layout(void) return (HKL)layout; }
-/*********************************************************************** - * GetKeyboardLayoutName (X11DRV.@) - */ -static BOOL CDECL X11DRV_GetKeyboardLayoutName(LPWSTR name) -{ - static const WCHAR formatW[] = {'%','0','8','x',0}; - DWORD layout; - - layout = HandleToUlong( get_locale_kbd_layout() ); - if (HIWORD(layout) == LOWORD(layout)) layout = LOWORD(layout); - sprintfW(name, formatW, layout); - TRACE("returning %s\n", debugstr_w(name)); - return TRUE; -} - -static void set_kbd_layout_preload_key(void) -{ - static const WCHAR preload[] = - {'K','e','y','b','o','a','r','d',' ','L','a','y','o','u','t','\','P','r','e','l','o','a','d',0}; - static const WCHAR one[] = {'1',0}; - - HKEY hkey; - WCHAR layout[KL_NAMELENGTH]; - - if (RegCreateKeyExW(HKEY_CURRENT_USER, preload, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey, NULL)) - return; - - if (!RegQueryValueExW(hkey, one, NULL, NULL, NULL, NULL)) - { - RegCloseKey(hkey); - return; - } - if (X11DRV_GetKeyboardLayoutName(layout)) - RegSetValueExW(hkey, one, 0, REG_SZ, (const BYTE *)layout, sizeof(layout)); - - RegCloseKey(hkey); -}
/********************************************************************** * X11DRV_InitKeyboard @@ -1634,8 +1597,6 @@ void X11DRV_InitKeyboard( Display *display ) }; int vkey_range;
- set_kbd_layout_preload_key(); - EnterCriticalSection( &kbd_section ); XDisplayKeycodes(display, &min_keycode, &max_keycode); if (key_mapping) XFree( key_mapping );