You could drill a widget tree in the following way:
-
Create BlueprintInterface to send events to desired widgets:
-
Add the interface to your widgets:
-
Create a macro library with the following macro:
-
Use the macro to send events from the bottom widget to every upper widget in the tree that does implement the interface:
-
Catch event:
Example:
Widget Tree:

Runtime: