1. Fixing so the screensaver only start one time when ReactOS starting.
authorMagnus Olsen <magnus@greatlord.com>
Thu, 13 Jul 2006 21:21:30 +0000 (21:21 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Thu, 13 Jul 2006 21:21:30 +0000 (21:21 +0000)
2. Fixing so the screensaver do not restart it self.
Alesky here is the bugfix I promies, it will not longer see alot start screen msg.
One bug remains before the reg key will be adding as defualt for matrix.scr so it
can run from livecd as well

svn path=/trunk/; revision=23047

reactos/subsystems/win32/win32k/ntuser/input.c
reactos/subsystems/win32/win32k/ntuser/misc.c

index 17e5d9a..65a5d62 100644 (file)
@@ -167,6 +167,7 @@ ScreenSaverThreadMain(PVOID StartContext)
    UINT ScreenSaverTimeOut = 0;
    BOOL nPreviousState = FALSE;
    NTSTATUS Status;
+   BOOL FristTime = TRUE;
 
 
    KeSetPriorityThread(&PsGetCurrentThread()->Tcb,
@@ -216,18 +217,25 @@ ScreenSaverThreadMain(PVOID StartContext)
               (nPreviousState == FALSE))
          {
             BOOL nPreviousState = FALSE;
-            DPRINT("Keyboard and Mouse TimeOut Starting Screen Saver ...\n");
-            DPRINT(" %I64d Keyboard Timeout Value\n",DiffTimeKeyboard.QuadPart);
-            DPRINT(" %I64d Mouse Timeout Value \n",DiffTimeMouse.QuadPart);
-            DPRINT(" %I64d TimeOut \n",DiffTimeMouse.QuadPart);
-
-            CSR_API_MESSAGE Request;
-            CsrInit();
-            Request.Type = MAKE_CSR_API(START_SCREEN_SAVER, CSR_GUI);
-            Request.Data.StartScreenSaver.Start = TRUE;
-            co_CsrNotifyScreenSaver(&Request );
-
-            IntSystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
+            DPRINT1("Keyboard and Mouse TimeOut Starting Screen Saver ...\n");
+            DPRINT1(" %I64d Keyboard Timeout Value\n",DiffTimeKeyboard.QuadPart);
+            DPRINT1(" %I64d Mouse Timeout Value \n",DiffTimeMouse.QuadPart);
+            DPRINT1(" %I64d TimeOut \n",DiffTimeMouse.QuadPart);
+
+                       if (FristTime == FALSE)
+                       {
+                CSR_API_MESSAGE Request;
+                CsrInit();
+                Request.Type = MAKE_CSR_API(START_SCREEN_SAVER, CSR_GUI);
+                Request.Data.StartScreenSaver.Start = TRUE;
+                co_CsrNotifyScreenSaver(&Request );
+
+                IntSystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
+                       }
+                       else
+                       {
+                               FristTime = FALSE;
+                       }
          }
 
          if ( (DiffTimeMouse.QuadPart < Timeout.QuadPart) &&
index dd45203..782a37c 100644 (file)
@@ -1020,16 +1020,14 @@ IntSystemParametersInfo(
                   return TRUE;
                              break;
                case SPI_SETFLATMENU:                              
-                                  WinStaObject->FlatMenu = uiParam;             
-                  return TRUE;
+                                  WinStaObject->FlatMenu = uiParam;                               
                              break;
                           case SPI_GETSCREENSAVETIMEOUT:
                                   if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut;                   
                                   return TRUE;
                                   break;
                           case SPI_SETSCREENSAVETIMEOUT:                                 
-                   WinStaObject->ScreenSaverTimeOut = uiParam;
-                  return TRUE;
+                   WinStaObject->ScreenSaverTimeOut = uiParam;                  
                                  break;
                           case SPI_GETSCREENSAVERRUNNING:
                      if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
@@ -1037,8 +1035,7 @@ IntSystemParametersInfo(
                                  break;
                           case SPI_SETSCREENSAVERRUNNING:                                
                                   if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
-                   WinStaObject->ScreenSaverRunning = uiParam;                            
-                  return TRUE;
+                   WinStaObject->ScreenSaverRunning = uiParam;                                              
                                  break;
                           case SPI_GETWHEELSCROLLLINES:
                                    CurInfo = IntGetSysCursorInfo(WinStaObject);