Is there no way to prevent keyboard focus from being set to nothing?

I’m pulling my hair out on this nonsense. If you’ve a main menu and the Play button is focused then the player clicks on the background the Play button loses focus.

I’ve tried all the tricks of setting the widget as Visible, I’ve tried setting the Overlay as Visible, I’ve tried goofy workarounds like reacting to mouse button up which doesn’t even fire, and finally I tried OnFocusReceived which does fire but is still not ideal.

Why does UMG insist on focusing nothing! Why UMG! Why Unreal! Why are you making my life miserable. Uhg.. sorry.. UMG is.. something.

This is absolutely destroying accessibility of my game. It flat out breaks keyboard navigation because attempting to navigate after focus has been completely lost with keyboard does nothing. It doesn’t restore focus to the next available widget.

What I’ve setup is my HUD is a 3 stack system. Main menu gets pushed to the stack. Clicking Options for example then pushes the Options widget to the stack. I’ve checked on the HUD and the stack widgets and there’s no relevant settings there either for this.

All of this is utilizing CommonUI so I’m within CommonActivatableWidget.

Think I might have found a solution. So on the root widget UNCHECK “Consume Pointer Input”. Next add the OnMouseButtonUp function override to it. In that set it to focus keyboard to the Play button in my case (or GetDesiredFocusTarget, etc..). Now go through and CHECK “Consume Pointer Input” on any widget you want to block this behavior.

This seams like a janky workaround, but it’s the best I could come up with if anyone has any better ideas on how to get UMG from focusing nothing.