[Fons Adriaensen]
I don't know the details of GTK, but this is a
classic problem
with high-level GUI toolsets: they don't allow you to wait
for X events (which trigger the loop, behind the scenes) and
anyhting else at the same time in the same thread. They don't
even separate _waiting_ for an X event, and _handling_ it into
two separate user calls (which would allow the user to add the
missing multiple wait functionality). This is one of the
reasons why I wrote my own GUI toolkit.
You should check out g_main_context_set_poll_func() sometime. I admit
it took me longer than it should have to find it myself. In short, it
does what you want. In a gtk way, sure, but it does it.
Cheers, Tim