From 28bb3a6a08c8e2dcb5a84d1f9484d23c59d49b2d Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 9 Jun 2008 12:15:34 +0000 Subject: [PATCH] ok - see comments with idle-enter. SVN revision: 34779 --- legacy/ecore/src/lib/ecore/ecore_events.c | 1 + legacy/ecore/src/lib/ecore/ecore_main.c | 9 +++++++-- legacy/ecore/src/lib/ecore_job/ecore_job.c | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/legacy/ecore/src/lib/ecore/ecore_events.c b/legacy/ecore/src/lib/ecore/ecore_events.c index 6bd9ec9c83..c33b2441ac 100644 --- a/legacy/ecore/src/lib/ecore/ecore_events.c +++ b/legacy/ecore/src/lib/ecore/ecore_events.c @@ -437,6 +437,7 @@ _ecore_event_call(void) ecore_main_loop_quit(); } } +// printf("EVENT BATCH DONE\n"); ecore_raw_event_type = ECORE_EVENT_NONE; ecore_raw_event_event = NULL; diff --git a/legacy/ecore/src/lib/ecore/ecore_main.c b/legacy/ecore/src/lib/ecore/ecore_main.c index 232adaa596..eb19b79e89 100644 --- a/legacy/ecore/src/lib/ecore/ecore_main.c +++ b/legacy/ecore/src/lib/ecore/ecore_main.c @@ -563,6 +563,7 @@ _ecore_main_loop_iterate_internal(int once_only) /* if these calls caused any buffered events to appear - deal with them */ while (_ecore_main_fd_handlers_buf_call()); while (_ecore_main_win32_message_buf_call()); + /* if ther are any - jump to processing them */ if (_ecore_event_exist()) { @@ -673,7 +674,6 @@ _ecore_main_loop_iterate_internal(int once_only) { /* process signals into events .... */ while (_ecore_signal_count_get()) _ecore_signal_call(); - /* handle events ... */ _ecore_event_call(); _ecore_main_fd_handlers_cleanup(); @@ -681,6 +681,11 @@ _ecore_main_loop_iterate_internal(int once_only) while (_ecore_main_fd_handlers_buf_call()); if (have_msg) _ecore_main_win32_message_buf_call(); while (_ecore_main_win32_message_buf_call()); - if (once_only) _ecore_idle_enterer_call(); +/* ok - too much optimising. let's call idle enterers more often. if we + * have events that place more events or jobs etc. on the event queue + * we may never get to call an idle enterer + if (once_only) + */ + _ecore_idle_enterer_call(); in_main_loop--; } diff --git a/legacy/ecore/src/lib/ecore_job/ecore_job.c b/legacy/ecore/src/lib/ecore_job/ecore_job.c index 44ac1e08cf..b275b1cbf6 100644 --- a/legacy/ecore/src/lib/ecore_job/ecore_job.c +++ b/legacy/ecore/src/lib/ecore_job/ecore_job.c @@ -22,6 +22,7 @@ ecore_job_init(void) { ecore_init(); ecore_event_job_type = ecore_event_type_new(); + printf("ecore_event_job_type = %i\n", ecore_event_job_type); _ecore_job_handler = ecore_event_handler_add(ecore_event_job_type, _ecore_job_event_handler, NULL); }