For two widget components that overlap on each other, is there a way to capture mouse input on both of them?
For example, let’s say I have two button overlap.
Both of them have a OnMouseButtonDown event. If I click the overlap area, I’d like both of them to take effect instead of the first one absorbs the input and prevents it from passing through.
In the event binder, I return “unhandled” but it seems not to work.
LMB will tunnel, everything else will be consumed.
Hello! What practical case requires
this logic?
Oh boy, where do I start?!
you have a top down view 2d Map and POIs, click a POI and let the event tunnel to the map below
you’re slicing & dicing fruit in one of those silly mobile games; 3 fruit overlap as you tap - now you can slice all three…
you can have draggable windows, you click & hold a window to drag it and the owning parent container gets a click too, making it always stay in focus for as long as the Drag OP is valid…
I believe unhandled is the correct way too base on the documentation, but it doesn’t seem to work… I’ll take another look when I get back to my computer.
Currently I directly override the NativeOnMouseButtonDown, UP, MOVE in the widget class to handle it. But in this way I’ll have to figure out which widget the mouse hits myself. I’ll try the BP setup ASAP. Thank you!
Hi there.
I tested override OnMouseButtonDown in BP and it works well just like override NativeOnMouseButtonDown in C++. But when I do it in binding event for specific widget(like a boder or image),
The input doesn’t go through… Is there a way to make input go through the widget bind event?
Seems like the FReply::Unhandled() will only pass to its parent widget through the widget tree path, not the layerid lower. If the two overlap widget do not in the same widget tree path (from leaf to root), it will not receive the click event while returning ‘Unhandled’ in top layer widget.
Does poster already solve the problem? There seems to be no good method except modifying the engine.