Rémi Bernon : win32u: Prevent user locale change in NtUserActivateKeyboardLayout.
Module: wine Branch: master Commit: c0366cbb2e5126901de99b7742032a9ad3d9b69b URL: https://gitlab.winehq.org/wine/wine/-/commit/c0366cbb2e5126901de99b7742032a9... Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Mon Feb 27 11:19:22 2023 +0100 win32u: Prevent user locale change in NtUserActivateKeyboardLayout. --- dlls/win32u/input.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index 8f71f93e0fe..11bb129134c 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -1193,6 +1193,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags ) { struct user_thread_info *info = get_user_thread_info(); HKL old_layout; + LCID locale; HWND focus; TRACE_(keyboard)( "layout %p, flags %x\n", layout, flags ); @@ -1206,6 +1207,13 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags ) return 0; } + if (NtQueryDefaultLocale( TRUE, &locale ) || LOWORD(layout) != locale) + { + RtlSetLastWin32Error( ERROR_CALL_NOT_IMPLEMENTED ); + FIXME_(keyboard)( "Changing user locale is not supported\n" ); + return 0; + } + if (!user_driver->pActivateKeyboardLayout( layout, flags )) return 0;
participants (1)
-
Alexandre Julliard