Will try to implement it as soon a I am retired, which is in about 21 years. So please be a bit patient ....
But instead of creating combinations of nodes, "perhaps" a UI node could send:
- The clicked coordinates (like we currently do)
- The bounding box (minX, minY, maxX, maxY) of the element that has been clicked.
Then you can calculate in your flow where you want to show the contextmenu. E.g. when you want to have the contextmenu to appear in the center of a button, then you just calculate the center of the button yourself. (ButtonNode --> FunctionNode (calculate the location) --> ContextMenuNode).
Just a wild idea... Not sure whether this is possible, and no time at the moment to try something...