From 46ef532ab00a475a15fc90d3e1dffe5ddebc3b0b Mon Sep 17 00:00:00 2001 From: James Tabor Date: Thu, 18 Dec 2008 01:14:39 +0000 Subject: [PATCH] Patch by Aric Stewart : user32: Implement handling of WM_INPUTLANGCHANGE. Updated header and made WIN_ListChildren global. svn path=/trunk/; revision=38162 --- reactos/dll/win32/user32/include/window.h | 2 ++ reactos/dll/win32/user32/windows/defwnd.c | 11 +++++++++-- reactos/dll/win32/user32/windows/mdi.c | 1 - 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/reactos/dll/win32/user32/include/window.h b/reactos/dll/win32/user32/include/window.h index cc069c4a305..0ac6e2a1e57 100644 --- a/reactos/dll/win32/user32/include/window.h +++ b/reactos/dll/win32/user32/include/window.h @@ -63,3 +63,5 @@ User32CreateWindowEx(DWORD dwExStyle, HINSTANCE hInstance, LPVOID lpParam, BOOL Unicode); + +HWND* WIN_ListChildren (HWND hWndparent); diff --git a/reactos/dll/win32/user32/windows/defwnd.c b/reactos/dll/win32/user32/windows/defwnd.c index 6621a487e8a..1ba74626e70 100644 --- a/reactos/dll/win32/user32/windows/defwnd.c +++ b/reactos/dll/win32/user32/windows/defwnd.c @@ -1574,8 +1574,15 @@ User32DefWindowProc(HWND hWnd, case WM_INPUTLANGCHANGE: { - //FIXME: What to do? - return TRUE; + int count = 0; + HWND *win_array = WIN_ListChildren( hWnd ); + + if (!win_array) + break; + while (win_array[count]) + SendMessageW( win_array[count++], WM_INPUTLANGCHANGE, wParam, lParam); + HeapFree(GetProcessHeap(),0,win_array); + break; } case WM_ENDSESSION: diff --git a/reactos/dll/win32/user32/windows/mdi.c b/reactos/dll/win32/user32/windows/mdi.c index 9c8deb53477..41f6ae9fc19 100644 --- a/reactos/dll/win32/user32/windows/mdi.c +++ b/reactos/dll/win32/user32/windows/mdi.c @@ -126,7 +126,6 @@ static HWND MDI_MoreWindowsDialog(HWND); static LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); static LRESULT WINAPI MDIClientWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); -static HWND* WIN_ListChildren (HWND hWndparent) {