Index: subsystems/win32/win32k/ntuser/sysparams.c =================================================================== --- subsystems/win32/win32k/ntuser/sysparams.c (revision 55346) +++ subsystems/win32/win32k/ntuser/sysparams.c (working copy) @@ -45,7 +45,7 @@ static const WCHAR* VAL_HOVERTIME = L"MouseHoverTime"; static const WCHAR* VAL_HOVERWIDTH = L"MouseHoverWidth"; static const WCHAR* VAL_HOVERHEIGHT = L"MouseHoverHeight"; -//static const WCHAR* VAL_SENSITIVITY = L"MouseSensitivity"; +static const WCHAR* VAL_SENSITIVITY = L"MouseSensitivity"; static const WCHAR* KEY_DESKTOP = L"Control Panel\\Desktop"; static const WCHAR* VAL_SCRTO = L"ScreenSaveTimeOut"; @@ -218,7 +218,8 @@ /* Load mouse settings */ gspv.caiMouse.FirstThreshold = SpiLoadMouse(VAL_MOUSE1, 6); gspv.caiMouse.SecondThreshold = SpiLoadMouse(VAL_MOUSE2, 10); - gspv.caiMouse.Acceleration = gspv.iMouseSpeed = SpiLoadMouse(VAL_MOUSE3, 1); + gspv.caiMouse.Acceleration = SpiLoadMouse(VAL_MOUSE3, 1); + gspv.iMouseSpeed = SpiLoadMouse(VAL_SENSITIVITY, 10); gspv.bMouseBtnSwap = SpiLoadMouse(VAL_SWAP, 0); gspv.bSnapToDefBtn = SpiLoadMouse(VAL_SNAPDEFBTN, 0); gspv.iMouseTrails = SpiLoadMouse(VAL_MOUSETRAILS, 0); @@ -1254,8 +1255,13 @@ return SpiGetInt(pvParam, &gspv.iMouseSpeed, fl); case SPI_SETMOUSESPEED: - // vgl SETMOUSE - return SpiSetInt(&gspv.iMouseSpeed, uiParam, KEY_MOUSE, VAL_MOUSE3, fl); + { + /* Allowed range is [1:20] */ + if ((INT_PTR)pvParam < 1 || (INT_PTR)pvParam > 20) + return 0; + else + return SpiSetInt(&gspv.iMouseSpeed, (INT_PTR)pvParam, KEY_MOUSE, VAL_SENSITIVITY, fl); + } case SPI_GETSCREENSAVERRUNNING: return SpiGetInt(pvParam, &gspv.bScrSaverRunning, fl);