From: Enlightenment S. <no-...@en...> - 2011-07-08 08:07:46
|
Log: ecore: Check for pending before entering g_main_loop Signed-off-by: Mike McCormack <mj....@sa...> Author: mike_m Date: 2011-07-08 01:07:40 -0700 (Fri, 08 Jul 2011) New Revision: 61150 Trac: http://trac.enlightenment.org/e/changeset/61150 Modified: trunk/ecore/src/lib/ecore/ecore_main.c Modified: trunk/ecore/src/lib/ecore/ecore_main.c =================================================================== --- trunk/ecore/src/lib/ecore/ecore_main.c 2011-07-08 08:07:29 UTC (rev 61149) +++ trunk/ecore/src/lib/ecore/ecore_main.c 2011-07-08 08:07:40 UTC (rev 61150) @@ -497,12 +497,14 @@ _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()) { @@ -561,7 +563,7 @@ 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) { @@ -590,10 +592,6 @@ 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()) |