You shouldn't do a gtk_main_quit() if you're using the gtk_dialog_run, since
that itself maintains a loop for you, and when a certain condition occurs,
it exits the loop for you.
-vc
----- Original Message -----
From: "Mohit Kumar" <mohit.kumar@xxxxxxxxx>
To: <gtk-list@xxxxxxxxx>
Sent: Monday, July 25, 2005 7:28 PM
Subject: SIGSEGV in gtk_main_quit()
Hi All,
I have written the following piece of code:
#include <gtk/gtk.h>
int mainDialog()
{
GtkWidget *window;
window = gtk_file_chooser_dialog_new("Save File", NULL,
GTK_FILE_CHOOSER_ACTION_SAVE,
GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_SAVE,GTK_RESPONSE_OK,NULL);
if(gtk_dialog_run(GTK_DIALOG(window)) == GTK_RESPONSE_OK)
{
char *filename;
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(window));
printf("File name :%s",filename);
g_free(filename);
}
gtk_widget_destroy(window);
gtk_main_quit();
}
int main(int argc, char*argv[])
{
gtk_init(&argc,&argv);
mainDialog();
gtk_main();
return 0;
}
And I am getting a SIGSEGV when gtk_main_quit() executes. The gdb output is:
Program received signal SIGSEGV, Segmentation fault.
0x4012656d in gtk_main_quit () at gtkmain.c:1233
warning: Source file is more recent than executable.
1233 g_main_loop_quit (main_loops->data);
(gdb) bt 5
#0 0x4012656d in gtk_main_quit () at gtkmain.c:1233
#1 0x0804888c in mainDialog () at sample.c:17
#2 0x080488b6 in main (argc=1, argv=0xbfffecc4) at sample.c:25
Could any one please tell me what mistake I am doing?
Thanks,
Mohit
_______________________________________________
gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list
_______________________________________________
gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list