Implement XxxRedrawDesktop for Dx, needs testing.
authorJames Tabor <james.tabor@reactos.org>
Mon, 5 May 2008 17:45:20 +0000 (17:45 +0000)
committerJames Tabor <james.tabor@reactos.org>
Mon, 5 May 2008 17:45:20 +0000 (17:45 +0000)
svn path=/trunk/; revision=33300

reactos/subsystems/win32/win32k/include/desktop.h
reactos/subsystems/win32/win32k/ntddraw/dxeng.c
reactos/subsystems/win32/win32k/ntuser/desktop.c

index d585865..81da0c6 100644 (file)
@@ -117,6 +117,8 @@ IntParseDesktopPath(PEPROCESS Process,
 BOOL FASTCALL
 IntDesktopUpdatePerUserSettings(BOOL bEnable);
 
+VOID APIENTRY UserRedrawDesktop(VOID);
+
 BOOL IntRegisterShellHookWindow(HWND hWnd);
 BOOL IntDeRegisterShellHookWindow(HWND hWnd);
 
index c3ca812..4c24fc0 100644 (file)
@@ -627,10 +627,11 @@ BOOLEAN
 APIENTRY
 DxEngRedrawDesktop()
 {
-    /* FIXME add redraw code */
-    UNIMPLEMENTED;
+    UserRedrawDesktop();
     return TRUE;
 }
+
+
 ULONG gulVisRgnUniqueness; // Increase count everytime client region is updated.
 
 /************************************************************************/
index 15c964f..709d396 100644 (file)
@@ -626,6 +626,25 @@ BOOL FASTCALL IntDesktopUpdatePerUserSettings(BOOL bEnable)
 
 /* PUBLIC FUNCTIONS ***********************************************************/
 
+VOID APIENTRY
+UserRedrawDesktop()
+{
+    PWINDOW_OBJECT Window = NULL;
+
+    UserEnterExclusive();
+
+    Window = UserGetDesktopWindow();
+
+    IntInvalidateWindows( Window,
+            Window->UpdateRegion,
+                       RDW_FRAME |
+                       RDW_ERASE |
+                  RDW_INVALIDATE |
+                 RDW_ALLCHILDREN);
+    UserLeave();
+}
+
+
 NTSTATUS FASTCALL
 co_IntShowDesktop(PDESKTOP_OBJECT Desktop, ULONG Width, ULONG Height)
 {