Author: jimtabor Date: Thu Jun 22 16:32:52 2006 New Revision: 22500
URL: http://svn.reactos.ru/svn/reactos?rev=22500&view=rev Log: Wine port WM_SETREDRAW.
Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c
Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/win32/user32/windows/def... ============================================================================== --- trunk/reactos/dll/win32/user32/windows/defwnd.c (original) +++ trunk/reactos/dll/win32/user32/windows/defwnd.c Thu Jun 22 16:32:52 2006 @@ -196,12 +196,25 @@ VOID DefWndSetRedraw(HWND hWnd, WPARAM wParam) { - if ((BOOL) wParam && 0 == (GetWindowLong(hWnd, GWL_STYLE) & WS_VISIBLE)) - { - ShowWindow(hWnd, SW_NORMAL); - } - - UNIMPLEMENTED; + LONG Style = GetWindowLong(hWnd, GWL_STYLE); + /* Content can be redrawn after a change. */ + if (wParam) + { + if (!(Style & WS_VISIBLE)) /* Not Visible */ + { + SetWindowLong(hWnd, GWL_STYLE, WS_VISIBLE); + } + } + else /* Content cannot be redrawn after a change. */ + { + if (Style & WS_VISIBLE) /* Visible */ + { + RedrawWindow( hWnd, NULL, 0, RDW_ALLCHILDREN | RDW_VALIDATE ); + Style &= ~WS_VISIBLE; + SetWindowLong(hWnd, GWL_STYLE, Style); /* clear bits */ + } + } + return; }