Hello Epic Support Team,
I’m using CommonUI for UI navigation in my Unreal Engine project. Originally, I used the default CommonUI navigation system, where the gamepad moves between buttons or items using directional inputs (Up/Down/Left/Right). This worked correctly — when using the gamepad, GetCurrentInputType returned Gamepad, and when using the keyboard, it returned Keyboard.
However, our project includes many widgets, and setting up navigation manually for each one is time-consuming. To simplify this, we decided to implement gamepad navigation like a mouse, where the cursor moves freely and can click on widgets — the cursor should remain visible at all times.
To achieve this, I created a custom class named VirtualCursorWidget, derived from CommonActivatableWidget. Other widgets inherit from this class. With this setup, the virtual cursor moves and clicks correctly only if I disable Support Gamepad in:
Project Settings → Common Input Settings → Input → Windows → Default → Support Settings
But when I disable “Support Gamepad,” GetCurrentInputType() always returns Keyboard, even though I’m using only the gamepad.
If I enable “Support Gamepad,” the function continuously switches between Keyboard and Gamepad (“Keyboard Gamepad Keyboard Gamepad…”), even though I’m only using the gamepad.
The default CommonUI navigation system doesn’t have this issue — input type detection works correctly.
It seems the problem occurs only when using a custom virtual cursor setup.
Could you please help me understand why this happens or suggest the correct way to keep the cursor visible and controlled by the gamepad while maintaining accurate input type detection?
Thank you for your time and support.