sub on_Window_delete_event { ... my ( $foo, ... ) = ...; if ($foo) { my $MessageDialog = Gtk3::MessageDialog->new( $Window, 'destroy-with-parent', 'GTK_MESSAGE_QUESTION', 'GTK_BUTTONS_YES_NO', "Sie haben %d nicht gespeicherte Änderungen, Fenster dennoch schießen", ..., ); my $Response = $MessageDialog->run; $MessageDialog->destroy; given ($Response) { when ("yes") { return Gtk3::EVENT_PROPAGATE; } when ("no") { return Gtk3::EVENT_STOP; } default { ; } } } else { return Gtk3::EVENT_PROPAGATE; } } sub on_Window_destroy { Gtk3->main_quit; }