summaryrefslogtreecommitdiff
path: root/legacy/ecore/src/lib/ecore/ecore_main.c
diff options
context:
space:
mode:
authorMike McCormack <mj.mccormack@samsung.com>2011-07-12 11:57:03 +0000
committerMike McCormack <mikem@ring3k.org>2011-07-12 11:57:03 +0000
commita55b6bb98ec276907516c4dbff9c87ab905105fa (patch)
treeab0b04cf19dc9e1a6ee3601ece26295431652be3 /legacy/ecore/src/lib/ecore/ecore_main.c
parentdc537d00479292bb3f7c2827be7421b104d55c4b (diff)
ecore: Make g_main_loop call idle enterers last
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com> SVN revision: 61285
Diffstat (limited to '')
-rw-r--r--legacy/ecore/src/lib/ecore/ecore_main.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/legacy/ecore/src/lib/ecore/ecore_main.c b/legacy/ecore/src/lib/ecore/ecore_main.c
index 5cf9f7d2d4..2f108e5383 100644
--- a/legacy/ecore/src/lib/ecore/ecore_main.c
+++ b/legacy/ecore/src/lib/ecore/ecore_main.c
@@ -237,6 +237,7 @@ static GSource *ecore_glib_source;
237static guint ecore_glib_source_id; 237static guint ecore_glib_source_id;
238static GMainLoop* ecore_main_loop; 238static GMainLoop* ecore_main_loop;
239static gboolean ecore_idling; 239static gboolean ecore_idling;
240static gboolean _ecore_glib_idle_enterer_called;
240static gboolean ecore_fds_ready; 241static gboolean ecore_fds_ready;
241#endif 242#endif
242 243
@@ -489,11 +490,11 @@ _ecore_main_gsource_prepare(GSource *source __UNUSED__, gint *next_time)
489 490
490 in_main_loop++; 491 in_main_loop++;
491 492
492 if (!ecore_idling) 493 if (!ecore_idling && !_ecore_glib_idle_enterer_called)
493 { 494 {
494 /* when idling, busy loop checking the fds only */ 495 _ecore_idle_enterer_call();
495 _ecore_idle_enterer_call(); 496 _ecore_throttle();
496 _ecore_throttle(); 497 _ecore_glib_idle_enterer_called = FALSE;
497 } 498 }
498 499
499 while (_ecore_signal_count_get()) _ecore_signal_call(); 500 while (_ecore_signal_count_get()) _ecore_signal_call();
@@ -668,6 +669,10 @@ _ecore_main_gsource_dispatch(GSource *source __UNUSED__, GSourceFunc callback __
668 669
669 while (_ecore_timer_call(_ecore_time_loop_time)); 670 while (_ecore_timer_call(_ecore_time_loop_time));
670 _ecore_timer_cleanup(); 671 _ecore_timer_cleanup();
672
673 _ecore_idle_enterer_call();
674 _ecore_throttle();
675 _ecore_glib_idle_enterer_called = TRUE;
671 } 676 }
672 677
673 in_main_loop--; 678 in_main_loop--;