Re: Idle Function Not Getting Called



On Sat, 5 Sep 2009 17:39:33 -0400 (EDT)
Marshall Lake <mlake mlake net> wrote:
I tried G_PRIORITY_HIGH_IDLE with similar results ... the idle
function is called only with the following code:

     g_idle_add_full (G_PRIORITY_HIGH_IDLE, (GSourceFunc) idlefunc,
NULL, NULL); while (gtk_events_pending ())
         gtk_main_iteration ();

If the while loop is not part of the coding then the idle function 
(idlefunc) is not called.

The difference with using G_PRIORITY_HIGH_IDLE is that some of the
buttons inside the dialogs drawn in the idle function are not
displayed.  But they still react to user clicks if clicked in the
right area.  I expect this is linked to your "GDK drawing functions"
statement above.

Then you must have some function blocking between your call to
g_idle_add_full() and control returning to the main loop.

Anything in a GTK+ signal or event handler must not block.  This means
in practice that nothing should block after your call to gtk_main().

Chris





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]