I've got a situation where...if I close a window by clicking the top right "X" button with with the mouse Tkx::tkwait works as expected and lets the program go past it.
However if I use a key handler to trap Escape and issue the line
Tkx::destroy($self->{win});
or
$self->{win}->g_destroy;
I seem to be in an endless loop...ending Dooneevent which I think is in the event loop but nothing passes tkwait.
What's worse is the little test program I wrote to isolate the problem works well with either close method mouse or destroy statement so...it's useless in shedding light on the problem.
BTW both of the destroy lines DO close the window so I'm not sure why tkwait doesn't see this and let the program flow by i.e. I printed the name of the window out just before tkwait so tkwait does "see" the window.
At this stage any suggestions would be welcome.
If necessary I'll try to build a more structurally representative model of my problem i.e. complete with skeleton object containing the window and use hierarchy.
I suppose what's throwing me is why g_destroy works in some cases and not others re causing tkwait to let the program pass by.