(sorry forgot list) On 3 July 2012 01:50, David Buchan <pdbuc...@yahoo.com> wrote: > My understanding is that child threads must never alter the UI in any way. > > If I have a program which spawns a child thread to download some data and I > want to be able to have a dialog pop up should an error occur, is it correct > to say that I need an idle function to be running concurrently to monitor > some global variable which would contain the status (set by the download > thread), and then the idle function would create the dialog pop-up? > > Put another way, if only the GTK+ main iteration is allowed to alter the GUI, > then how does someone get information out of a child thread and to the UI?
Well from what I hear, g_idle_add offers some form of thread safety so a child thread can communicate some item of data via a callback executed in the GUI thread. The documentation also seems to support this view: http://developer.gnome.org/glib/2.31/glib-The-Main-Event-Loop.html#glib-The-Main-Event-Loop.description your child/download thread does the monitoring of the error status and when an error is found, use g_idle_add to wait some moments and then communicate the error to a callback. HTH, James. _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list