Pregunta

I'm writing Perl/Tk program which uses AnyEvent's timer. And I have a problem with closing window if timer is active. I made this window close handler:

$self -> {window} -> protocol( 'WM_DELETE_WINDOW' => sub {
                                                   undef $self -> {timer};
                                                   $self -> {window} -> destroy;
});

If timer is active when I close the window, timer stops, window closes, but MainLoop doesn't stop. What's wrong?

¿Fue útil?

Solución

According to the AnyEvent::Impl::Tk documentation, a hidden Tk MainWindow is created to get things working. But it seems that this hidden window is never destroyed automatically. As a workaround, you can do it yourself:

$AnyEvent::Impl::Tk::mw->destroy;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top