Start drafting out UI navigation with controller, by traversing panels
Refactor so we can switch between panel traversal and virtual cursor based on input
Don't revert back to PanelTraversalSystem if analog is empty
Add basic working virtual cursor using PanelInput.UpdateMouse
Fixed calculation of virtual cursor position
Use stylesheet to style virtual cursor, add ScrollSpeed
Refactor, virtual cursor as its own rootpanel so we don't add a panel to every root panel we access
Disable system if mouse is moving at all
Make VirtualCursorOverlay a razor panel
Update SteamInput manifest to include joystick inputs for Menu action set
Hide mouse cursor while we have controller input active
Support processing any number of root panels, make it work in GameMenu
Scale ControllerInput.GetAnalog by Input.ControllerLookYaw(Pitch)Speed
Scale virtual cursor position movement by delta time, no wonder it felt different on GameMenu
Process inputs in MenuDll
Remove some direct controller access, use Input.AnalogMove/AnalogLook instead
VCS: only tick for panels that want mouse input
VCS: fix is-pressed style
Refactor, add ControllerOverlay, so we can add another overlay for panel traversal selection
Add PanelTraversalOverlay (for lack of a better name)
Work on finding panels from delta, fixed not finding an initial focused panel
Give eligible panels a score and give it some data to score by, focus the lowest scoring panel, also hook up selection and scrolling
Decrease block increment size, can get finer selections (i.e PackageCard modal button)
Fix FindPanelsAt never finding more than 1 panel
Remove PanelTraversalOverlay, it looked shit
When enabling VCS, use the mouse's current position
Traverse blocks relative to the screen size, instead of set pixels
Add IControllerInputSystem.Destroy
Store last mouse position, don't run in multiple contexts (sort this out in a better way next) - fixes VCS overlay lingering around
Minor cleanup
Run Input.SetFocus( null ) on IControllerInputSystem.Destroy
Scope UI simulation
Remove context hacks
Pass DoAnyPanelsWantMouseVisible() to ControllerInput, don't call if we don't need input
Only use pointer-events on elements we want to click on for SocialBar
Remove unused code, documentation pass
When looking for an initial panel for traversal, use the mouse position (works w/ virtual cursor)
Remove InputManifestTemplate/GamepadManifestTemplate groups from Sandbox.Game csproj since they don't exist
Don't run ControllerInput.Tick at all if we don't have a controller
Docs for IVirtualCursor
Kill controller input system if we run out of gamepads to use
General cleanup, remove unused ControllerOverlay panel
Add adjustable analog sensitivity for UI