diff --git a/reactos/subsystems/win32/win32k/include/winsta.h b/reactos/subsystems/win32/win32k/include/winsta.h index 55bcf4850ee..2095a86a4d0 100644 --- a/reactos/subsystems/win32/win32k/include/winsta.h +++ b/reactos/subsystems/win32/win32k/include/winsta.h @@ -32,7 +32,8 @@ typedef struct _WINSTATION_OBJECT UINT CaretBlinkRate; HANDLE ShellWindow; HANDLE ShellListView; - + + BOOL FlatMenu; /* ScreenSaver */ BOOL ScreenSaverRunning; UINT ScreenSaverTimeOut; diff --git a/reactos/subsystems/win32/win32k/ntuser/misc.c b/reactos/subsystems/win32/win32k/ntuser/misc.c index c11b871e873..3c2ecf32f1b 100644 --- a/reactos/subsystems/win32/win32k/ntuser/misc.c +++ b/reactos/subsystems/win32/win32k/ntuser/misc.c @@ -998,6 +998,8 @@ IntSystemParametersInfo( case SPI_GETSCREENSAVERRUNNING: case SPI_GETSCREENSAVETIMEOUT: case SPI_SETSCREENSAVETIMEOUT: + case SPI_GETFLATMENU: + case SPI_SETFLATMENU: { PSYSTEM_CURSORINFO CurInfo; @@ -1013,6 +1015,12 @@ IntSystemParametersInfo( switch(uiAction) { + case SPI_GETFLATMENU: + if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->FlatMenu; + return TRUE; + case SPI_SETFLATMENU: + WinStaObject->FlatMenu = uiParam; + break; case SPI_GETSCREENSAVETIMEOUT: if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut; return TRUE; @@ -1035,7 +1043,7 @@ IntSystemParametersInfo( CurInfo = IntGetSysCursorInfo(WinStaObject); if (pvParam != NULL) *((UINT*)pvParam) = CurInfo->WheelScroChars; // FIXME add this value to scroll list as scroll value ?? - break; + return TRUE; case SPI_SETDOUBLECLKWIDTH: CurInfo = IntGetSysCursorInfo(WinStaObject); /* FIXME limit the maximum value? */ @@ -1400,6 +1408,8 @@ UserSystemParametersInfo( case SPI_SETSCREENSAVERRUNNING: case SPI_GETSCREENSAVETIMEOUT: case SPI_SETSCREENSAVETIMEOUT: + case SPI_GETFLATMENU: + case SPI_SETFLATMENU: { BOOL Ret; diff --git a/reactos/subsystems/win32/win32k/ntuser/winsta.c b/reactos/subsystems/win32/win32k/ntuser/winsta.c index 10245440d1f..9cfc753699e 100644 --- a/reactos/subsystems/win32/win32k/ntuser/winsta.c +++ b/reactos/subsystems/win32/win32k/ntuser/winsta.c @@ -490,6 +490,7 @@ NtUserCreateWindowStation( */ WindowStationObject->ScreenSaverRunning = FALSE; WindowStationObject->ScreenSaverTimeOut = 30; + WindowStationObject->FlatMenu = FALSE; if(!(CurInfo = ExAllocatePool(PagedPool, sizeof(SYSTEM_CURSORINFO)))) { @@ -510,6 +511,8 @@ NtUserCreateWindowStation( CurInfo->WheelScroLines = 3; CurInfo->WheelScroChars = 3; + + /* FIXME: Obtain the following information from the registry */ CurInfo->SwapButtons = FALSE; CurInfo->DblClickSpeed = 500;