diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index a333de02a..f9f754a5d 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -32,7 +32,6 @@ enlightenment_open internal_bindir = $(libdir)/enlightenment/utils internal_bin_PROGRAMS = \ enlightenment_fm_op \ -enlightenment_init \ enlightenment_sys \ enlightenment_thumb \ enlightenment_alert \ @@ -425,12 +424,6 @@ enlightenment_backlight_CFLAGS = @SUID_CFLAGS@ @EEZE_CFLAGS@ enlightenment_backlight_LDADD = @SUID_LDFLAGS@ @EEZE_LIBS@ endif -enlightenment_init_SOURCES = \ -e_init_main.c \ -e_xinerama.c - -enlightenment_init_LDADD = @E_INIT_LIBS@ - enlightenment_alert_SOURCES = \ e_alert_main.c diff --git a/src/bin/e_init.c b/src/bin/e_init.c index 4db1431cf..db34f24f3 100644 --- a/src/bin/e_init.c +++ b/src/bin/e_init.c @@ -2,28 +2,33 @@ EAPI int E_EVENT_INIT_DONE = 0; -/* local function prototypes */ -static Eina_Bool _e_init_cb_exe_event_del(void *data __UNUSED__, int type __UNUSED__, void *event); - /* local variables */ -static const char *title = NULL; -static const char *version = NULL; -static Ecore_Exe *init_exe = NULL; -static Ecore_Event_Handler *exe_del_handler = NULL; -static Ecore_Ipc_Client *client = NULL; static int done = 0; static int undone = 0; -static Eina_List *stats = NULL; +static Evas_Object *_e_init_object = NULL; +static Eina_List *splash_objs = NULL; +static Ecore_Timer *_e_init_timeout_timer = NULL; + +static Eina_Bool +_e_init_cb_timeout(void *data __UNUSED__) +{ + _e_init_timeout_timer = NULL; + e_init_hide(); + return ECORE_CALLBACK_CANCEL; +} + +static void +_e_init_cb_signal_done_ok(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + e_init_hide(); +} /* public functions */ EINTERN int e_init_init(void) { E_EVENT_INIT_DONE = ecore_event_type_new(); - exe_del_handler = - ecore_event_handler_add(ECORE_EXE_EVENT_DEL, - _e_init_cb_exe_event_del, NULL); - client = NULL; + done = 0; return 1; } @@ -33,86 +38,99 @@ e_init_shutdown(void) { /* if not killed, kill init */ e_init_hide(); - if (title) eina_stringshare_del(title); - if (version) eina_stringshare_del(version); - title = NULL; - version = NULL; - if (exe_del_handler) ecore_event_handler_del(exe_del_handler); - exe_del_handler = NULL; return 1; } EAPI void e_init_show(void) { - char buf[8192], *theme, *tit, *ver; - const char *s = NULL; - + Eina_Stringshare *theme; + Evas_Object *o; + E_Manager *man; + E_Container *con; + E_Zone *zone; + Eina_List *l; /* exec init */ if (!e_config->init_default_theme) - s = e_path_find(path_themes, "default.edj"); + theme = e_path_find(path_themes, "default.edj"); else if (e_config->init_default_theme[0] == '/') - s = eina_stringshare_add(e_config->init_default_theme); + theme = eina_stringshare_add(e_config->init_default_theme); else - s = e_path_find(path_themes, e_config->init_default_theme); + theme = e_path_find(path_themes, e_config->init_default_theme); - if (s) theme = strdup(e_util_filename_escape(s)); - else theme = strdup("XdX"); - if (s) eina_stringshare_del(s); + /* extra screens */ + EINA_LIST_FOREACH(e_manager_list()->next, l, man) + { + o = edje_object_add(e_comp_get(man)->evas); + edje_object_file_set(o, theme, "e/init/extra_screen"); + evas_object_name_set(o, "_e_init_extra_screen"); + evas_object_move(o, 0, 0); + evas_object_resize(o, man->w, man->h); + evas_object_layer_set(o, E_COMP_CANVAS_LAYER_MAX); + evas_object_show(o); + splash_objs = eina_list_append(splash_objs, o); + } - if (title) tit = strdup(e_util_filename_escape(title)); - else tit = strdup("XtX"); - - if (version) ver = strdup(e_util_filename_escape(version)); - else ver = strdup("XvX"); - - snprintf(buf, sizeof(buf), - "exec %s/enlightenment/utils/enlightenment_init \'%s\' \'%i\' \'%s\' \'%s\'", - e_prefix_lib_get(), theme, - e_config->font_hinting, tit, ver); - printf("RUN INIT: %s\n", buf); - free(theme); - free(tit); - free(ver); - /* FIXME: add font path to cmd-line */ - init_exe = ecore_exe_run(buf, NULL); + man = eina_list_data_get(e_manager_list()); + con = eina_list_data_get(man->containers); + EINA_LIST_FOREACH(con->zones, l, zone) + { + o = edje_object_add(e_comp_get(man)->evas); + if (!zone->num) + { + edje_object_file_set(o, theme, "e/init/splash"); + evas_object_name_set(o, "_e_init_object"); + _e_init_object = o; + } + else + { + edje_object_file_set(o, theme, "e/init/extra_screen"); + evas_object_name_set(o, "_e_init_extra_screen"); + } + evas_object_clip_set(o, zone->bg_clip_object); + fprintf(stderr, "zone %p: %i %i %ix%i\n", zone, zone->x, zone->y, zone->w, zone->h); + evas_object_move(o, zone->x, zone->y); + evas_object_resize(o, zone->w, zone->h); + evas_object_layer_set(o, E_COMP_CANVAS_LAYER_MAX); + evas_object_show(o); + splash_objs = eina_list_append(splash_objs, o); + } + edje_object_part_text_set(_e_init_object, "e.text.disable_text", + "Disable splash screen"); + edje_object_signal_callback_add(_e_init_object, "e,state,done_ok", "e", + _e_init_cb_signal_done_ok, NULL); + eina_stringshare_del(theme); + _e_init_timeout_timer = ecore_timer_add(240.0, _e_init_cb_timeout, NULL); } EAPI void e_init_hide(void) { - if (init_exe) ecore_exe_terminate(init_exe); + E_FREE_LIST(splash_objs, evas_object_del); + _e_init_object = NULL; + E_FREE_FUNC(_e_init_timeout_timer, ecore_timer_del); } EAPI void e_init_title_set(const char *str) { - if (title) eina_stringshare_del(title); - title = eina_stringshare_add(str); + if (!_e_init_object) return; + edje_object_part_text_set(_e_init_object, "e.text.title", str); } EAPI void e_init_version_set(const char *str) { - if (version) eina_stringshare_del(version); - version = eina_stringshare_add(str); + if (!_e_init_object) return; + edje_object_part_text_set(_e_init_object, "e.text.version", str); } EAPI void e_init_status_set(const char *str) { - if (!init_exe) return; -// printf("---STAT %p %s\n", client, str); - if (!client) - { - stats = eina_list_append(stats, eina_stringshare_add(str)); - return; - } -// printf("---SEND\n"); - ecore_ipc_client_send(client, E_IPC_DOMAIN_INIT, 1, 0, 0, 0, (void *)str, - strlen(str) + 1); - ecore_ipc_client_flush(client); + if (!_e_init_object) return; + edje_object_part_text_set(_e_init_object, "e.text.status", str); } EAPI void @@ -123,9 +141,7 @@ e_init_done(void) done = 1; ecore_event_add(E_EVENT_INIT_DONE, NULL, NULL, NULL); // printf("---DONE %p\n", client); - if (!client) return; - ecore_ipc_client_send(client, E_IPC_DOMAIN_INIT, 2, 0, 0, 0, NULL, 0); - ecore_ipc_client_flush(client); + edje_object_signal_emit(_e_init_object, "e,state,done", "e"); } EAPI void @@ -134,90 +150,8 @@ e_init_undone(void) undone++; } -EAPI void -e_init_client_data(Ecore_Ipc_Event_Client_Data *e) -{ -// printf("---new init client\n"); - if (!client) client = e->client; - if (e->minor == 1) - { - if (e->data) - { - int i, num; - Ecore_X_Window *initwins; - - num = e->size / sizeof(Ecore_X_Window); - initwins = e->data; - for (i = 0; i < num; i += 2) - { - Eina_List *l; - E_Manager *man; - - EINA_LIST_FOREACH(e_manager_list(), l, man) - { - if (man->root == initwins[i + 0]) - { - man->initwin = initwins[i + 1]; - ecore_x_window_raise(man->initwin); - } - } - } - } - while (stats) - { - const char *s; - - s = stats->data; - stats = eina_list_remove_list(stats, stats); -// printf("---SPOOL %s\n", s); - e_init_status_set(s); - eina_stringshare_del(s); - } - } - else if (e->minor == 2) - { - e_config->show_splash = e->ref; - e_config_save_queue(); - } - if (done) e_init_done(); -} - -EAPI void -e_init_client_del(Ecore_Ipc_Event_Client_Del *e) -{ -// printf("---del init client\n"); - if (e->client == client) - { - Eina_List *l; - E_Manager *man; - - client = NULL; - EINA_LIST_FOREACH(e_manager_list(), l, man) - { - man->initwin = 0; - } - } -} - EAPI int e_init_count_get(void) { return undone; } - -/* local functions */ -static Eina_Bool -_e_init_cb_exe_event_del(void *data __UNUSED__, int type __UNUSED__, void *event) -{ - Ecore_Exe_Event_Del *ev; - - ev = event; - if (ev->exe == init_exe) - { - /* init exited */ -// ecore_exe_free(init_exe); - init_exe = NULL; - } - return ECORE_CALLBACK_RENEW; -} - diff --git a/src/bin/e_init_main.c b/src/bin/e_init_main.c deleted file mode 100644 index 6333fc36f..000000000 --- a/src/bin/e_init_main.c +++ /dev/null @@ -1,519 +0,0 @@ -#include "config.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef EAPI -#undef EAPI -#endif -#ifdef WIN32 -# ifdef BUILDING_DLL -# define EAPI __declspec(dllexport) -# else -# define EAPI __declspec(dllimport) -# endif -#else -# ifdef __GNUC__ -# if __GNUC__ >= 4 -/* BROKEN in gcc 4 on amd64 */ -#if 0 -# pragma GCC visibility push(hidden) -#endif -# define EAPI __attribute__ ((visibility("default"))) -# else -# define EAPI -# endif -# else -# define EAPI -# endif -#endif - -#ifdef EINTERN -#undef EINTERN -#endif -#ifdef __GNUC__ -# if __GNUC__ >= 4 -# define EINTERN __attribute__ ((visibility("hidden"))) -# else -# define EINTERN -# endif -#else -# define EINTERN -#endif - -#define E_TYPEDEFS 1 -#include "e_xinerama.h" -#undef E_TYPEDEFS -#include "e_xinerama.h" - -EINTERN int e_init_init(void); -EINTERN int e_init_shutdown(void); -EAPI void e_init_show(void); -EAPI void e_init_hide(void); -EAPI void e_init_title_set(const char *str); -EAPI void e_init_version_set(const char *str); -EAPI void e_init_status_set(const char *str); -EAPI void e_init_done(void); - -/* local subsystem functions */ -static int _e_ipc_init(void); -static Eina_Bool _e_ipc_cb_server_add(void *data, int type, void *event); -static Eina_Bool _e_ipc_cb_server_del(void *data, int type, void *event); -static Eina_Bool _e_ipc_cb_server_data(void *data, int type, void *event); - -/* local subsystem globals */ -static Ecore_Ipc_Server *_e_ipc_server = NULL; -static const char *theme = NULL; -static int font_hinting = -1; -static const char *title = NULL; -static const char *verstr = NULL; -static Eina_List *fpath = NULL; -static Ecore_X_Window *initwins = NULL; -static int initwins_num = 0; -static Ecore_Ipc_Server *server = NULL; - -static Eina_Bool -delayed_ok(void *data __UNUSED__) -{ - kill(getppid(), SIGUSR1); - return ECORE_CALLBACK_CANCEL; -} - -int -main(int argc, char **argv) -{ - int i; - char *s; - double scale; - - for (i = 1; i < argc; i++) - { - if ((i == 1) && - ((!strcmp(argv[i], "-h")) || - (!strcmp(argv[i], "-help")) || - (!strcmp(argv[i], "--help")))) - { - printf( - "This is an internal tool for Enlightenment.\n" - "do not use it.\n" - ); - exit(0); - } - else if (!theme) - theme = argv[i]; - else if (font_hinting < 0) - font_hinting = atoi(argv[i]); - else if (!title) - title = argv[i]; - else if (!verstr) - verstr = argv[i]; - else fpath = eina_list_append(fpath, argv[i]); - } - - ecore_init(); - ecore_x_init(NULL); - ecore_app_args_set(argc, (const char **)argv); - evas_init(); - ecore_evas_init(); - edje_init(); - edje_frametime_set(1.0 / 30.0); - s = getenv("E_SCALE"); - scale = 1.0; - if (s) scale = atof(s); - edje_scale_set(scale); - ecore_ipc_init(); - - if (_e_ipc_init()) - { - e_init_init(); - e_init_show(); - e_init_title_set(title); - e_init_version_set(verstr); - e_init_status_set(""); - ecore_timer_add(0.2, delayed_ok, NULL); - ecore_main_loop_begin(); - } - - if (_e_ipc_server) - { - ecore_ipc_server_del(_e_ipc_server); - _e_ipc_server = NULL; - } - - ecore_ipc_shutdown(); - ecore_evas_shutdown(); - edje_shutdown(); - evas_shutdown(); - ecore_x_shutdown(); - ecore_shutdown(); - - return 0; -} - -/* local subsystem functions */ -static int -_e_ipc_init(void) -{ - char *sdir; - - sdir = getenv("E_IPC_SOCKET"); - if (!sdir) - { - printf("The E_IPC_SOCKET environment variable is not set. This is\n" - "exported by Enlightenment to all processes it launches.\n" - "This environment variable must be set and must point to\n" - "Enlightenment's IPC socket file (minus port number).\n"); - return 0; - } - _e_ipc_server = ecore_ipc_server_connect(ECORE_IPC_LOCAL_SYSTEM, sdir, 0, NULL); - if (!_e_ipc_server) return 0; - - ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD, _e_ipc_cb_server_add, NULL); - ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, _e_ipc_cb_server_del, NULL); - ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, _e_ipc_cb_server_data, NULL); - - return 1; -} - -static Eina_Bool -_e_ipc_cb_server_add(void *data __UNUSED__, int type __UNUSED__, void *event) -{ - Ecore_Ipc_Event_Server_Add *e; - - e = event; - server = e->server; - ecore_ipc_server_send(server, - 7 /*E_IPC_DOMAIN_INIT*/, - 1 /*hello*/, - 0, 0, 0, - initwins, initwins_num * sizeof(Ecore_X_Window)); - ecore_ipc_server_flush(server); - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_e_ipc_cb_server_del(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__) -{ - /* quit now */ - ecore_main_loop_quit(); - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_e_ipc_cb_server_data(void *data __UNUSED__, int type __UNUSED__, void *event) -{ - Ecore_Ipc_Event_Server_Data *e; - - e = event; - if (e->major != 7 /*E_IPC_DOMAIN_INIT*/) return ECORE_CALLBACK_PASS_ON; - switch (e->minor) - { - case 1: - if (e->data) e_init_status_set(e->data); - break; - - case 2: - /* quit now */ - e_init_done(); - break; - - default: - break; - } - return ECORE_CALLBACK_PASS_ON; -} - -static void _e_init_cb_signal_disable(void *data, Evas_Object *obj, const char *emission, const char *source); -static void _e_init_cb_signal_enable(void *data, Evas_Object *obj, const char *emission, const char *source); -static void _e_init_cb_signal_done_ok(void *data, Evas_Object *obj, const char *emission, const char *source); -static Eina_Bool _e_init_cb_window_configure(void *data, int ev_type, void *ev); -static Eina_Bool _e_init_cb_timeout(void *data); -static Ecore_Evas *_e_init_evas_new(Ecore_X_Window root, int w, int h, Ecore_X_Window *winret); - -/* local subsystem globals */ -static Ecore_X_Window _e_init_root_win = 0; -static Ecore_X_Window _e_init_win = 0; -static Ecore_Evas *_e_init_ecore_evas = NULL; -static Evas *_e_init_evas = NULL; -static Evas_Object *_e_init_object = NULL; -static Ecore_Event_Handler *_e_init_configure_handler = NULL; -static Ecore_Timer *_e_init_timeout_timer = NULL; - -/* externally accessible functions */ -EINTERN int -e_init_init(void) -{ - Ecore_X_Window root, *roots; - Evas_Object *o; - Eina_List *l, *screens; - int i, num, w, h; - const char *s; - - e_xinerama_init(); - - _e_init_configure_handler = - ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CONFIGURE, - _e_init_cb_window_configure, NULL); - - num = 0; - roots = ecore_x_window_root_list(&num); - if ((!roots) || (num <= 0)) - { - free(roots); - return 0; - } - root = roots[0]; - _e_init_root_win = root; - - s = theme; - initwins = malloc(num * 2 * sizeof(Ecore_X_Window)); - initwins_num = num * 2; - - /* extra root windows/screens */ - for (i = 1; i < num; i++) - { - ecore_x_window_size_get(roots[i], &w, &h); - _e_init_ecore_evas = _e_init_evas_new(roots[i], w, h, &_e_init_win); - fprintf(stderr, "init win: %ix%i for %x\n", w, h, roots[i]); - _e_init_evas = ecore_evas_get(_e_init_ecore_evas); - initwins[(i * 2) + 0] = roots[i]; - initwins[(i * 2) + 1] = _e_init_win; - - o = edje_object_add(_e_init_evas); - edje_object_file_set(o, s, "e/init/extra_screen"); - evas_object_move(o, 0, 0); - evas_object_resize(o, w, h); - evas_object_show(o); - } - - /* primary screen/root */ - ecore_x_window_size_get(root, &w, &h); - _e_init_ecore_evas = _e_init_evas_new(root, w, h, &_e_init_win); - fprintf(stderr, "main init win: %ix%i for %x\n", w, h, root); - _e_init_evas = ecore_evas_get(_e_init_ecore_evas); - initwins[0] = root; - initwins[1] = _e_init_win; - - /* look at xinerama asto how to slice this up */ - screens = (Eina_List *)e_xinerama_screens_get(); - if (screens) - { - E_Screen *scr; - - EINA_LIST_FOREACH(screens, l, scr) - { - o = edje_object_add(_e_init_evas); - if (l == screens) - { - edje_object_file_set(o, s, "e/init/splash"); - _e_init_object = o; - } - else - edje_object_file_set(o, s, "e/init/extra_screen"); - fprintf(stderr, "screen region screen %p: %i %i %ix%i\n", scr, scr->x, scr->y, scr->w, scr->h); - evas_object_move(o, scr->x, scr->y); - evas_object_resize(o, scr->w, scr->h); - evas_object_show(o); - } - } - else - { - o = edje_object_add(_e_init_evas); - edje_object_file_set(o, s, "e/init/splash"); - _e_init_object = o; - fprintf(stderr, "screen region fill %ix%i\n", w, h); - evas_object_move(o, 0, 0); - evas_object_resize(o, w, h); - evas_object_show(o); - } - - edje_object_part_text_set(_e_init_object, "e.text.disable_text", - "Disable splash screen"); - edje_object_signal_callback_add(_e_init_object, "e,action,init,disable", "e", - _e_init_cb_signal_disable, NULL); - edje_object_signal_callback_add(_e_init_object, "e,action,init,enable", "e", - _e_init_cb_signal_enable, NULL); - edje_object_signal_callback_add(_e_init_object, "e,state,done_ok", "e", - _e_init_cb_signal_done_ok, NULL); - free(roots); - - _e_init_timeout_timer = ecore_timer_add(240.0, _e_init_cb_timeout, NULL); - return 1; -} - -EINTERN int -e_init_shutdown(void) -{ - if (_e_init_configure_handler) - ecore_event_handler_del(_e_init_configure_handler); - _e_init_configure_handler = NULL; - e_init_hide(); - return 1; -} - -EAPI void -e_init_show(void) -{ - if (!_e_init_ecore_evas) return; - ecore_evas_raise(_e_init_ecore_evas); - ecore_evas_show(_e_init_ecore_evas); -} - -EAPI void -e_init_hide(void) -{ - if (!_e_init_ecore_evas) return; - ecore_evas_hide(_e_init_ecore_evas); - evas_object_del(_e_init_object); - ecore_evas_free(_e_init_ecore_evas); - _e_init_ecore_evas = NULL; - _e_init_evas = NULL; - _e_init_win = 0; - _e_init_object = NULL; -} - -EAPI void -e_init_title_set(const char *str) -{ - if (!_e_init_object) return; - edje_object_part_text_set(_e_init_object, "e.text.title", str); -} - -EAPI void -e_init_version_set(const char *str) -{ - if (!_e_init_object) return; - edje_object_part_text_set(_e_init_object, "e.text.version", str); -} - -EAPI void -e_init_status_set(const char *str) -{ - if (!_e_init_object) return; - edje_object_part_text_set(_e_init_object, "e.text.status", str); -} - -EAPI void -e_init_done(void) -{ - if (!_e_init_object) return; - edje_object_signal_emit(_e_init_object, "e,state,done", "e"); - if (_e_init_timeout_timer) ecore_timer_del(_e_init_timeout_timer); - _e_init_timeout_timer = ecore_timer_add(60.0, _e_init_cb_timeout, NULL); -} - -static void -_e_init_cb_signal_disable(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) -{ - if (!server) return; - ecore_ipc_server_send(server, - 7 /*E_IPC_DOMAIN_INIT*/, - 2 /*set splash*/, - 0, 0, 0, - NULL, 0); - ecore_ipc_server_flush(server); -} - -static void -_e_init_cb_signal_enable(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) -{ - if (!server) return; - ecore_ipc_server_send(server, - 7 /*E_IPC_DOMAIN_INIT*/, - 2 /*set splash*/, - 1, 0, 0, - NULL, 0); - ecore_ipc_server_flush(server); -} - -static void -_e_init_cb_signal_done_ok(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) -{ - e_init_hide(); - if (_e_init_timeout_timer) - { - ecore_timer_del(_e_init_timeout_timer); - _e_init_timeout_timer = NULL; - } - ecore_main_loop_quit(); -} - -static Eina_Bool -_e_init_cb_window_configure(void *data __UNUSED__, int ev_type __UNUSED__, void *ev) -{ - Ecore_X_Event_Window_Configure *e; - - e = ev; - /* really simple - don't handle xinerama - because this event will only - * happen in single head */ - if (e->win != _e_init_root_win) return ECORE_CALLBACK_PASS_ON; - ecore_evas_resize(_e_init_ecore_evas, e->w, e->h); - evas_object_resize(_e_init_object, e->w, e->h); - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_e_init_cb_timeout(void *data __UNUSED__) -{ - e_init_hide(); - _e_init_timeout_timer = NULL; - ecore_main_loop_quit(); - return ECORE_CALLBACK_CANCEL; -} - -static Ecore_Evas * -_e_init_evas_new(Ecore_X_Window root, int w, int h, Ecore_X_Window *winret) -{ - Ecore_Evas *ee = NULL; - Evas *e; - Eina_List *l; - const char *path; - - ee = ecore_evas_software_x11_new(NULL, root, 0, 0, w, h); - ecore_evas_override_set(ee, 1); - ecore_evas_software_x11_direct_resize_set(ee, 1); - *winret = ecore_evas_software_x11_window_get(ee); - - e = ecore_evas_get(ee); - - evas_image_cache_set(e, 4096 * 1024); - evas_font_cache_set(e, 512 * 1024); - - EINA_LIST_FOREACH(fpath, l, path) - evas_font_path_append(e, path); - - if (font_hinting == 0) - { - if (evas_font_hinting_can_hint(e, EVAS_FONT_HINTING_BYTECODE)) - evas_font_hinting_set(e, EVAS_FONT_HINTING_BYTECODE); - else if (evas_font_hinting_can_hint(e, EVAS_FONT_HINTING_AUTO)) - evas_font_hinting_set(e, EVAS_FONT_HINTING_AUTO); - else - evas_font_hinting_set(e, EVAS_FONT_HINTING_NONE); - } - else if (font_hinting == 1) - { - if (evas_font_hinting_can_hint(e, EVAS_FONT_HINTING_AUTO)) - evas_font_hinting_set(e, EVAS_FONT_HINTING_AUTO); - else - evas_font_hinting_set(e, EVAS_FONT_HINTING_NONE); - } - else if (font_hinting == 2) - evas_font_hinting_set(e, EVAS_FONT_HINTING_NONE); - - ecore_evas_name_class_set(ee, "E", "Init_Window"); - ecore_evas_title_set(ee, "Enlightenment Init"); - - ecore_evas_raise(ee); - ecore_evas_show(ee); - - return ee; -} - diff --git a/src/bin/e_ipc.c b/src/bin/e_ipc.c index 850195819..24d7c18ac 100644 --- a/src/bin/e_ipc.c +++ b/src/bin/e_ipc.c @@ -124,7 +124,6 @@ _e_ipc_cb_client_del(void *data __UNUSED__, int type __UNUSED__, void *event) /* delete client sruct */ e_thumb_client_del(e); e_fm2_client_del(e); - e_init_client_del(e); ecore_ipc_client_del(e->client); return ECORE_CALLBACK_PASS_ON; } @@ -204,10 +203,6 @@ _e_ipc_cb_client_data(void *data __UNUSED__, int type __UNUSED__, void *event) e_fm2_client_data(e); break; - case E_IPC_DOMAIN_INIT: - e_init_client_data(e); - break; - case E_IPC_DOMAIN_ALERT: { switch (e->minor) diff --git a/src/bin/e_ipc.h b/src/bin/e_ipc.h index ccf9fb092..ccb98688e 100644 --- a/src/bin/e_ipc.h +++ b/src/bin/e_ipc.h @@ -14,7 +14,6 @@ typedef enum _E_Ipc_Domain E_IPC_DOMAIN_EVENT, E_IPC_DOMAIN_THUMB, E_IPC_DOMAIN_FM, - E_IPC_DOMAIN_INIT, E_IPC_DOMAIN_ALERT, E_IPC_DOMAIN_LAST } E_Ipc_Domain; diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 4be26d76d..005d9564b 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -619,36 +619,6 @@ main(int argc, char **argv) TS("E_Moveresize Init Done"); _e_main_shutdown_push(e_moveresize_shutdown); - if (e_config->show_splash) - { - TS("E_Splash Init"); - if (!e_init_init()) - { - e_error_message_show(_("Enlightenment cannot set up its init screen.\n")); - _e_main_shutdown(-1); - } - TS("E_Splash Init Done"); - _e_main_shutdown_push(e_init_shutdown); - } - if (!((!e_config->show_splash) || (after_restart))) - { - e_init_title_set(_("Enlightenment")); - e_init_version_set(VERSION); - e_init_show(); - pause(); - } - - if (e_config->show_splash) - e_init_status_set(_("Starting International Support")); - TS("E_Intl Post Init"); - if (!e_intl_post_init()) - { - e_error_message_show(_("Enlightenment cannot set up its intl system.\n")); - _e_main_shutdown(-1); - } - TS("E_Intl Post Init Done"); - _e_main_shutdown_push(e_intl_post_shutdown); - TS("Efreet Init"); if (!efreet_init()) { @@ -660,20 +630,6 @@ main(int argc, char **argv) TS("Efreet Init Done"); _e_main_shutdown_push(efreet_shutdown); - if (!really_know) - { - TS("Test File Format Support"); - _e_main_test_formats(); - TS("Test File Format Support Done"); - } - else - { - efreet_icon_extension_add(".svg"); - efreet_icon_extension_add(".jpg"); - efreet_icon_extension_add(".png"); - efreet_icon_extension_add(".edj"); - } - e_screensaver_preinit(); if (e_config->show_splash) @@ -699,6 +655,49 @@ main(int argc, char **argv) TS("Screens Init Done"); _e_main_shutdown_push(_e_main_screens_shutdown); + if (e_config->show_splash) + { + TS("E_Splash Init"); + if (!e_init_init()) + { + e_error_message_show(_("Enlightenment cannot set up its init screen.\n")); + _e_main_shutdown(-1); + } + TS("E_Splash Init Done"); + _e_main_shutdown_push(e_init_shutdown); + } + if (!((!e_config->show_splash) || (after_restart))) + { + e_init_title_set(_("Enlightenment")); + e_init_version_set(VERSION); + e_init_show(); + } + + if (e_config->show_splash) + e_init_status_set(_("Starting International Support")); + TS("E_Intl Post Init"); + if (!e_intl_post_init()) + { + e_error_message_show(_("Enlightenment cannot set up its intl system.\n")); + _e_main_shutdown(-1); + } + TS("E_Intl Post Init Done"); + _e_main_shutdown_push(e_intl_post_shutdown); + + if (!really_know) + { + TS("Test File Format Support"); + _e_main_test_formats(); + TS("Test File Format Support Done"); + } + else + { + efreet_icon_extension_add(".svg"); + efreet_icon_extension_add(".jpg"); + efreet_icon_extension_add(".png"); + efreet_icon_extension_add(".edj"); + } + if (e_config->show_splash) e_init_status_set(_("Setup ACPI")); TS("E_Acpi Init"); @@ -1675,6 +1674,15 @@ _e_main_screens_init(void) return 0; } + TS("E_Comp Init"); + if (!e_comp_init()) + { + e_error_message_show(_("Enlightenment cannot setup compositing.\n")); + _e_main_shutdown(-1); + } + TS("E_Comp Init Done"); + _e_main_shutdown_push(e_comp_shutdown); + TS("\tscreens: win"); if (!e_win_init()) { @@ -1689,15 +1697,6 @@ _e_main_screens_init(void) _e_main_shutdown(-1); } TS("E_Xkb Init Done"); - - TS("E_Comp Init"); - if (!e_comp_init()) - { - e_error_message_show(_("Enlightenment cannot setup compositing.\n")); - _e_main_shutdown(-1); - } - TS("E_Comp Init Done"); - _e_main_shutdown_push(e_comp_shutdown); TS("\tscreens: manage roots"); for (i = 0; i < num; i++)