prob fermeture fenetre après confirmation
Un truc m'echappe.
Je fais un essai de fermeture de fenêtre par le clic de la croix avec gtk.
Le code ci-dessous fonctionne. Par contre sir dans ma routine callback routine_quit, j'enlève le printf dans mon test de réponde de fermeture ( résultat réponse à boite de dialogue ), j'ai une deuxième demande de confirmation une fois la fenêtre fermée. Je pense qu'elle est détruite par "delete-event". Je m'en sors en mettant ce printf qui en fait ne me sert à rien d'autre qu'à contourner mon prob. mais j'aimerais comprendre.
Merci d'avance à la personne pouvant m'expliquer.
PS : je suis sur ubuntu 9.04 et en gtk 2 ( je ne sais pas si ça a une importance )
#include <gtk/gtk.h>
void routine_quit();
int main (int argc, char **argv)
{
GtkWidget *fenetre;
gtk_init (&argc, &argv);
fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (fenetre), "Test");
gtk_window_set_default_size(GTK_WINDOW(fenetre), 640, 480);
g_signal_connect (G_OBJECT(fenetre), "delete-event",
G_CALLBACK (routine_quit), NULL);
gtk_widget_show_all(fenetre);
gtk_main ();
return 0;
}
void routine_quit()
{
GtkWidget *demande_fermeture;
GtkResponseType reponse_fermeture;
demande_fermeture=gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
"Etes-vous sur de vouloir quitter ?");
gtk_window_set_title (GTK_WINDOW (demande_fermeture), "Confirmation");
gtk_window_set_modal(GTK_WINDOW(demande_fermeture), TRUE);
reponse_fermeture=gtk_dialog_run(GTK_DIALOG (demande_fermeture));
gtk_widget_destroy(demande_fermeture);
if (reponse_fermeture==GTK_RESPONSE_YES)
{
gtk_main_quit();
}
else
{
printf("Sortie annulée\n"); /*ne fait rien mais evite le dysfinctionnement */
}
}