Hmm if the control hides itself by handling the event, then
_unhandled_input should not be called, since... well it was handled by the hiding control^^
I tried that too by adding
_unhandled_input to another script on another node:
if event is InputEventMouseButton:
print("Received unhandled click")
and it does not get called when I press my mouse button to hide the control in front. It does get called only if I click again, after it was hidden.
queue_free may be a little different because it performs destruction of the node later, so event propagation might behave differently if the event is not marked as andled. However, I didn't notice a difference when trying that instead of
Basically I'm still unable to reproduce the case of "1 click causes both
_gui_input in the front node and
_unhandled_input in the node behind". Do you have an example project reproducing this?