Demos/DemoCursorVisible.cs
using Sandbox;

namespace Sandbox;

// forces the OS cursor visible on enable and restores previous visibility on disable; lets you click/hover Goo panels in smoke scenes without a game-input router (MouseVisibility.Auto requires the engine's InputContext to already be in UI mode, which doesn't happen for plain world panels).
[Title( "Demo: Cursor Visible" ), Category( "UI/Demo" ), Icon( "mouse" )]
public sealed class DemoCursorVisible : Component
{
    MouseVisibility _prev;

    protected override void OnEnabled()
    {
        _prev = Mouse.Visibility;
        Mouse.Visibility = MouseVisibility.Visible;
    }

    protected override void OnDisabled()
    {
        Mouse.Visibility = _prev;
    }
}