diff --git a/src/bin/e_main.c b/src/bin/e_main.c index c5a319f5d..9ad1d002d 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -114,6 +114,8 @@ static Ecore_Idle_Enterer *_idle_before = NULL; static Ecore_Idle_Enterer *_idle_after = NULL; static Ecore_Idle_Enterer *_idle_flush = NULL; +static Ecore_Event_Handler *mod_init_end = NULL; + /* external variables */ EAPI Eina_Bool e_precache_end = EINA_FALSE; EAPI Eina_Bool x_fatal = EINA_FALSE; @@ -1805,6 +1807,14 @@ _e_main_efreet_paths_init(void) } } +static Eina_Bool +_e_main_modules_load_after(void *d EINA_UNUSED, int type EINA_UNUSED, void *ev EINA_UNUSED) +{ + e_int_config_modules(NULL, NULL); + E_FN_DEL(ecore_event_handler_del, mod_init_end); + return ECORE_CALLBACK_RENEW; +} + static void _e_main_modules_load(Eina_Bool safe_mode) { @@ -1823,7 +1833,6 @@ _e_main_modules_load(Eina_Bool safe_mode) e_module_disable(m); e_object_del(E_OBJECT(m)); - e_int_config_modules(e_container_current_get(e_manager_current_get()), NULL); e_error_message_show (_("Enlightenment crashed early on start and has
" "been restarted. There was an error loading the
" @@ -1838,7 +1847,6 @@ _e_main_modules_load(Eina_Bool safe_mode) } else { - e_int_config_modules(e_container_current_get(e_manager_current_get()), NULL); e_error_message_show (_("Enlightenment crashed early on start and has
" "been restarted. All modules have been disabled
" @@ -1854,6 +1862,7 @@ _e_main_modules_load(Eina_Bool safe_mode) "The module configuration dialog should let you select your
" "modules again.")); } + mod_init_end = ecore_event_handler_add(E_EVENT_MODULE_INIT_END, _e_main_modules_load_after, NULL); } }