Add call to DdReenableDirectDrawObject (GdiEntry10) where it is needed.
Modified: trunk/reactos/lib/ddraw/hal/ddraw_hal.c
Modified: trunk/reactos/lib/ddraw/main/ddraw_main.c

Modified: trunk/reactos/lib/ddraw/hal/ddraw_hal.c
--- trunk/reactos/lib/ddraw/hal/ddraw_hal.c	2005-11-01 11:35:01 UTC (rev 18926)
+++ trunk/reactos/lib/ddraw/hal/ddraw_hal.c	2005-11-01 12:02:12 UTC (rev 18927)
@@ -22,6 +22,8 @@
     if(!DdCreateDirectDrawObject (&This->DirectDrawGlobal, This->hdc))
         return DDERR_INVALIDPARAMS;
 
+	BOOL dummy;
+	DdReenableDirectDrawObject(&This->DirectDrawGlobal, &dummy);
             
     /* alloc all the space */
     This->DirectDrawGlobal.lpDDCBtmp = (LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 
@@ -226,7 +228,6 @@
     DriverInfo.dwExpectedSize = sizeof(DDNONLOCALVIDMEMCAPS);
     This->HalInfo.GetDriverInfo(&DriverInfo);
     
-
     /* Get the NTCallbacks  */
     /*  Fill in wher
     DriverInfo.guidInfo = GUID_NTCallbacks;
@@ -476,8 +477,11 @@
     {
         return DDERR_NODRIVERSUPPORT;
     } 
+
+	BOOL dummy;
+	DdReenableDirectDrawObject(&This->DirectDrawGlobal, &dummy);
     
-	return mode.ddRVal
+	return mode.ddRVal;
 }
 #endif
 

Modified: trunk/reactos/lib/ddraw/main/ddraw_main.c
--- trunk/reactos/lib/ddraw/main/ddraw_main.c	2005-11-01 11:35:01 UTC (rev 18926)
+++ trunk/reactos/lib/ddraw/main/ddraw_main.c	2005-11-01 12:02:12 UTC (rev 18927)
@@ -82,17 +82,20 @@
 HRESULT WINAPI Main_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight, 
                                                                 DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)
 {
-    DWORD ret;
+    IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
 
     /* FIXME implement hal setMode */
-    if((ret = Hal_DirectDraw_SetDisplayMode(iface,  dwWidth,  dwHeight, 
-                                            dwBPP,  dwRefreshRate,  dwFlags)) == DD_OK)
+    if(Hal_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, 
+                                            dwBPP, dwRefreshRate, dwFlags) == DD_OK)
     {
-        return ret;
+        return DD_OK;
     }    
 
-    ret = Hel_DirectDraw_SetDisplayMode(iface,  dwWidth,  dwHeight, dwBPP,  dwRefreshRate,  dwFlags);
+    DWORD ret = Hel_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, dwBPP, dwRefreshRate, dwFlags);
 
+	BOOL dummy;
+	DdReenableDirectDrawObject(&This->DirectDrawGlobal, &dummy);
+
     return ret; 
 }