Hey guys I’m having trouble with a cursor hoover system when I interact with widgets.
So the set up is simple, I have set “generate cursor overlap events” ON in my controller BP, and it works perfectly fine, the actor component gets hoovered and it triggers the event. Also i have some widgets which are always present with visibility “Visible” which are suppouse to block the hoovering of the cursor.
But in reality this doesnt work properly, because if a click on any part of the widget, the click ignores the widget and any component below that widget get its “component hoover event” triggered, which cause any number of undesired shenanigans.
So am I missing something? do i have to check anything in my controller or my widget? or the bypass of the the widget visibility is a bug?
I did replicate this situation in a new project with the same results.
Hey there @Drugox! Welcome back to the community! We could try the IsFocusable bool if you hadn’t already. The IsFocusable bool kind of works as a consume input for widgets, where if you are clicking that, nothing else should be able to receive anything from that click.
Alternatively you can make a global variable to handle if the cursor is colliding at all with the blocking widgets, if it is just don’t allow whatever the hover events do to occur. This isn’t optimal, but it’s definitely an option.
Handled means that you’re done with the input and wish no one else processed it (so the component you mentioned originally will never receive it). Returning Unhandled will pass the input to whatever is lurking underneath. May it be another widget or the player controller.
if any of the widgets host actual native buttons, you do not need to handle clicks. Buttons will consume the input anyway.
So no, not a bug - it’s a handy (ish) feature that may sometimes get in the way. But also allows one to create a layered granular interface.
THIS is the answer. Sorry I didn’t mention earlier but they were regular widgets so the “Handled” node worked fantastic. I added it to my Canvas so all their children are being affected, which is the intention.