diff --git a/reactos/subsystems/win32/win32k/include/cursoricon.h b/reactos/subsystems/win32/win32k/include/cursoricon.h index ffe3fef681a..e46e408b24c 100644 --- a/reactos/subsystems/win32/win32k/include/cursoricon.h +++ b/reactos/subsystems/win32/win32k/include/cursoricon.h @@ -41,6 +41,8 @@ typedef struct _CURSORACCELERATION_INFO typedef struct _SYSTEM_CURSORINFO { BOOL Enabled; + BOOL ClickLockActive; + DWORD ClickLockTime; // BOOL SwapButtons; UINT ButtonsDown; CURSORCLIP_INFO CursorClipInfo; diff --git a/reactos/subsystems/win32/win32k/ntuser/sysparams.c b/reactos/subsystems/win32/win32k/ntuser/sysparams.c index 28d40b547ce..a5a6dee56b5 100644 --- a/reactos/subsystems/win32/win32k/ntuser/sysparams.c +++ b/reactos/subsystems/win32/win32k/ntuser/sysparams.c @@ -263,6 +263,7 @@ SpiUpdatePerUserSystemParameters() gspv.iWheelScrollLines = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLLINES, 3); gspv.dwMouseClickLockTime = SpiLoadDWord(KEY_DESKTOP, VAL_CLICKLOCKTIME, 1200); gspv.dwUserPrefMask = SpiLoadUserPrefMask(UPM_DEFAULT); + gspv.bMouseClickLock = (gspv.dwUserPrefMask & UPM_CLICKLOCK) != 0; #if (_WIN32_WINNT >= 0x0600) gspv.iWheelScrollChars = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLCHARS, 3); #endif @@ -1322,6 +1323,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl) return SpiGetUserPref(UPM_CLICKLOCK, pvParam, fl); case SPI_SETMOUSECLICKLOCK: + gspv.bMouseClickLock = *(BOOL*) pvParam; return SpiSetUserPref(UPM_CLICKLOCK, pvParam, fl); case SPI_GETMOUSEVANISH: diff --git a/reactos/subsystems/win32/win32k/ntuser/winsta.c b/reactos/subsystems/win32/win32k/ntuser/winsta.c index 054fd85437b..a8a035444f7 100644 --- a/reactos/subsystems/win32/win32k/ntuser/winsta.c +++ b/reactos/subsystems/win32/win32k/ntuser/winsta.c @@ -537,6 +537,8 @@ NtUserCreateWindowStation( CurInfo->LastBtnDown = 0; CurInfo->CurrentCursorObject = NULL; CurInfo->ShowingCursor = 0; + CurInfo->ClickLockActive = FALSE; + CurInfo->ClickLockTime = 0; /* // not used anymore