The mouse system has functionality in setters and getters so i continued the theme, though I wanted to change it. Mouse activity time out and OS mouse visibility would be less "random" if they were handled in some polling function.

This way HandleOSMouseVisibility "works" even if it depended on any other factors than the active state of the mouse. But yeah current conditions for the OS cursor visibility would allow calling HandleOSMouseVisibility only when calling CMouseStat::SetActive, CMouseStat::SetEnabled or when the fullscreen status gets changed.

But because of these points I didn't want to cause any more troubles if someone wants to change the logic behind the visibility of the OS mouse cursor.