Use g_timeout_add() instead of g_idle_add(). Also make some small GUI changes.