diff --git a/reactos/subsystems/win32/win32k/include/winsta.h b/reactos/subsystems/win32/win32k/include/winsta.h index dccc67c19aa..d6a2d2e98d5 100644 --- a/reactos/subsystems/win32/win32k/include/winsta.h +++ b/reactos/subsystems/win32/win32k/include/winsta.h @@ -34,10 +34,12 @@ typedef struct _WINSTATION_OBJECT HANDLE ShellWindow; HANDLE ShellListView; - BOOL FlatMenu; - /* ScreenSaver */ - BOOL ScreenSaverRunning; - UINT ScreenSaverTimeOut; + BOOL FlatMenu; + /* ScreenSaver */ + BOOL ScreenSaverRunning; + UINT ScreenSaverTimeOut; + /* Should this be on each desktop ? */ + BOOL ScreenSaverActive; /* Wallpaper */ HANDLE hbmWallpaper; diff --git a/reactos/subsystems/win32/win32k/ntuser/misc.c b/reactos/subsystems/win32/win32k/ntuser/misc.c index c81e878e195..019d61104be 100644 --- a/reactos/subsystems/win32/win32k/ntuser/misc.c +++ b/reactos/subsystems/win32/win32k/ntuser/misc.c @@ -958,6 +958,9 @@ IntSystemParametersInfo( /* FIXME: Implement this, don't just return constant */ *(PBOOL)pvParam = FALSE; break; + + + case SPI_GETKEYBOARDCUES: case SPI_SETDOUBLECLKWIDTH: case SPI_SETDOUBLECLKHEIGHT: @@ -1025,10 +1028,11 @@ IntSystemParametersInfo( if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning; WinStaObject->ScreenSaverRunning = uiParam; break; + case SPI_SETSCREENSAVEACTIVE: + WinStaObject->ScreenSaverActive = uiParam; + break; case SPI_GETSCREENSAVEACTIVE: - /* FIXME: how to disable the screensaver? */ - ASSERT(pvParam); - *((BOOL*)pvParam) = TRUE; + if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverActive; break; case SPI_GETWHEELSCROLLLINES: ASSERT(pvParam); diff --git a/reactos/subsystems/win32/win32k/ntuser/winsta.c b/reactos/subsystems/win32/win32k/ntuser/winsta.c index 273fe3c76e0..72a8a8d33d8 100644 --- a/reactos/subsystems/win32/win32k/ntuser/winsta.c +++ b/reactos/subsystems/win32/win32k/ntuser/winsta.c @@ -537,8 +537,9 @@ NtUserCreateWindowStation( CurInfo->MouseHoverWidth = 4; CurInfo->MouseHoverHeight = 4; - WindowStationObject->ScreenSaverTimeOut = 10 * 60; - WindowStationObject->SystemCursor = CurInfo; + WindowStationObject->ScreenSaverActive = FALSE; + WindowStationObject->ScreenSaverTimeOut = 10; + WindowStationObject->SystemCursor = CurInfo; /* END FIXME loading from register */