#include <libgnomeui/gnome-druid-page-edge.h>
#include "final.h"
#include <libgnomevfs/gnome-vfs-utils.h>
+#include <libgnomeui/gnome-dialog.h>
#include <captive/macros.h>
#include <captive/captivemodid.h>
g_return_if_fail(replyp!=NULL);
*replyp=reply;
+ gtk_main_quit();
}
void on_DruidButtonOK_clicked(GtkButton *button,gpointer user_data /* unused */)
(GnomeReplyCallback)on_DruidButtonOK_clicked_dialog_callback,
&reply); /* data */
g_signal_connect((gpointer)dialog,"close",G_CALLBACK(gtk_main_quit),NULL);
+ gnome_dialog_set_close(GNOME_DIALOG(dialog),FALSE);
/* Never call gtk_main() from other thread than the initial one.
* We would have to switch GTK+ context (g_main_context()?).
*/
gtk_main();
- /* 'dialog' gets destroyed automatically */
if (reply==0) /* 0 for 'OK', 1 for 'Cancel', left -1 for dialog close. */
exit(EXIT_SUCCESS);
+ /* It is still needed despite: gnome_dialog_set_close(,TRUE);
+ * in: libgnomeui-2.10.0-1
+ * There may be some races regarding when is ran: gtk_main_quit();
+ */
+ gtk_widget_destroy(dialog);
}
static void button_stock_set_label(GtkWidget *widget,const gchar *label_text_new /* callback_data */)
dialog=gnome_app_message(App,message);
gtk_window_set_modal(GTK_WINDOW(dialog),TRUE);
- g_signal_connect((gpointer)dialog,"close",G_CALLBACK(gtk_main_quit),NULL);
+ /* See also around: gnome_dialog_set_close(); */
+ gnome_dialog_set_close(GNOME_DIALOG(dialog),FALSE);
+ g_signal_connect((gpointer)dialog,"close" ,G_CALLBACK(gtk_main_quit),NULL);
+ g_signal_connect((gpointer)dialog,"clicked",G_CALLBACK(gtk_main_quit),NULL);
gtk_main();
- /* 'dialog' gets destroyed automatically */
+ /* See also around: gnome_dialog_set_close(); */
+ gtk_widget_destroy(dialog);
gdk_flush();
gdk_threads_leave();