ecore_main_loop_begin();
- /* FIXME?: glib main loop exits on an idle enterer */
- //assert(called == idle_enterer_str);
+ /* glib main loop exits on an idle enterer */
+ assert(called == idle_enterer_str);
ecore_shutdown();
return 0;
static guint ecore_glib_source_id;
static GMainLoop* ecore_main_loop;
static gboolean ecore_idling;
+static gboolean _ecore_glib_idle_enterer_called;
static gboolean ecore_fds_ready;
#endif
in_main_loop++;
- if (!ecore_idling)
+ if (!ecore_idling && !_ecore_glib_idle_enterer_called)
{
- /* when idling, busy loop checking the fds only */
- _ecore_idle_enterer_call();
- _ecore_throttle();
+ _ecore_idle_enterer_call();
+ _ecore_throttle();
+ _ecore_glib_idle_enterer_called = FALSE;
}
while (_ecore_signal_count_get()) _ecore_signal_call();
while (_ecore_timer_call(_ecore_time_loop_time));
_ecore_timer_cleanup();
+
+ _ecore_idle_enterer_call();
+ _ecore_throttle();
+ _ecore_glib_idle_enterer_called = TRUE;
}
in_main_loop--;