[ros-diffs] [jimtabor] 22500: Wine port WM_SETREDRAW.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Thu Jun 22 14:32:52 CEST 2006


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/defwnd.c?rev=22500&r1=22499&r2=22500&view=diff
==============================================================================
--- 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;
 }
 
 




More information about the Ros-diffs mailing list