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/de…
==============================================================================
--- 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;
}