_ecore_throttle();
}
+ while (_ecore_signal_count_get()) _ecore_signal_call();
+
/* don't check fds if somebody quit */
running = g_main_loop_is_running(ecore_main_loop);
if (running)
{
/* only set idling state in dispatch */
- if (ecore_idling && !_ecore_idler_exist())
+ if (ecore_idling && !_ecore_idler_exist() && !_ecore_event_exist())
{
if (_ecore_timers_exists())
{
in_main_loop++;
/* check if old timers expired */
- if (ecore_idling && !_ecore_idler_exist())
+ if (ecore_idling && !_ecore_idler_exist() && !_ecore_event_exist())
{
if (timer_fd >= 0)
{
ecore_fds_ready = (_ecore_main_fdh_glib_mark_active() > 0);
_ecore_main_fd_handlers_cleanup();
- /* ^C perhaps? */
- if (!ret && _ecore_signal_count_get() > 0)
- ret = TRUE;
-
/* check timers after updating loop time */
_ecore_time_loop_time = ecore_time_get();
if (!ret && _ecore_timers_exists())