Sujith wrote: > Gabriele Greco writes: > > Intercept the delete_event or modify the callback where you do the > > gtk_main_quit() and insert there some thread sync code. > > > > You should take care also when you add the rows to your Tree/ListStore if > > you do that directly from the thread that scans the db. > > > > I suppose there is a thread since if there isn't one when you quit the main > > loop nothing can crash it (except something you call after gtk_main()) :) > > > > I don't have a separate thread that does the DB scanning. > The sequence of operations is something like this: > > 1 * Init various GUI elements including the track treeview. > 2 * Read the DB and append elements to the treeview. > 3 * call gtk_main() and wait for events. > > Now, if the user quits between 2 and 3, it becomes an issue because gtk_main() > hasn't been called yet and I can't check for the main loop. > If gtk_main() has been invoked, I can check for the existence of the mainloop > like this: > > while(gtk_events_pending()) > if (gtk_main_iteration_do(FALSE)) > return; >
I have not checked, but maybe gtk_main_leve() returns 0 if gtk_main() has not been called yet? If that would be of any help. > Is spawning a thread and cooking up some simple synchronization scheme the > only > way to quit gracefully ? > > thanks, > Sujith > _______________________________________________ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list