clicking the 'x' in title-bar to close test_dialog in following app does not:
the dialog goes away but when main_window is clicked it reappears and hangs.
That's because WhenPush is also called whenever a pusher has focus AND the left mouse is down. (See Pusher::LeftDown());.
Hence the freeze.
Still, this might be a bug though.
It has its uses, but given your test-case, you don't seem to need it. What you need to use is WhenAction()
a thought:
the behaviour on WhenPush is understandable, but it would seem
the LostFocus &/ LeftUp events are lost somewhere...
and the second appearance of the dialog cannot be closed (hangs)
I know I can subclass and create my own, however it would be handy
if there is a similar default event-handler for WhenClick[ed] that
does not have the gotcha of WhenPush