giant comp rejiggering commit #LAST:
authorMike Blumenkrantz <m.blumenkran@samsung.com>
Thu, 18 Apr 2013 07:28:59 +0000 (08:28 +0100)
committerMike Blumenkrantz <m.blumenkran@samsung.com>
Thu, 18 Apr 2013 07:30:07 +0000 (08:30 +0100)
* merge init splash to comp canvas

* remove enlightenment_init exe

src/bin/Makefile.am
src/bin/e_init.c
src/bin/e_init_main.c [deleted file]
src/bin/e_ipc.c
src/bin/e_ipc.h
src/bin/e_main.c

index a333de0..f9f754a 100644 (file)
@@ -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
 
index 4db1431..db34f24 100644 (file)
@@ -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);
-
-   if (s) theme = strdup(e_util_filename_escape(s));
-   else theme = strdup("XdX");
-   if (s) eina_stringshare_del(s);
-
-   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);
+     theme = e_path_find(path_themes, e_config->init_default_theme);
+
+   /* 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);
+     }
+
+   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 (file)
index 6333fc3..0000000
+++ /dev/null
@@ -1,519 +0,0 @@
-#include "config.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <Ecore.h>
-#include <Ecore_X.h>
-#include <Ecore_Evas.h>
-#include <Ecore_Ipc.h>
-#include <Evas.h>
-#include <Edje.h>
-
-#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;
-}
-
index 8501958..24d7c18 100644 (file)
@@ -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)
index ccf9fb0..ccb9868 100644 (file)
@@ -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;
index 4be26d7..005d956 100644 (file)
@@ -619,6 +619,42 @@ main(int argc, char **argv)
    TS("E_Moveresize Init Done");
    _e_main_shutdown_push(e_moveresize_shutdown);
 
+   TS("Efreet Init");
+   if (!efreet_init())
+     {
+        e_error_message_show(_("Enlightenment cannot initialize the FDO desktop system.\n"
+                               "Perhaps you lack permissions on ~/.cache/efreet or are\n"
+                               "out of memory or disk space?"));
+        _e_main_shutdown(-1);
+     }
+   TS("Efreet Init Done");
+   _e_main_shutdown_push(efreet_shutdown);
+
+   e_screensaver_preinit();
+
+   if (e_config->show_splash)
+     e_init_status_set(_("Setup Actions"));
+   TS("E_Actions Init");
+   if (!e_actions_init())
+     {
+        e_error_message_show(_("Enlightenment cannot set up its actions system.\n"));
+        _e_main_shutdown(-1);
+     }
+   TS("E_Actions Init Done");
+   _e_main_shutdown_push(e_actions_shutdown);
+
+   if (e_config->show_splash)
+     e_init_status_set(_("Setup Screens"));
+   TS("Screens Init");
+   if (!_e_main_screens_init())
+     {
+        e_error_message_show(_("Enlightenment set up window management for all the screens on your system\n"
+                               "failed. Perhaps another window manager is running?\n"));
+        _e_main_shutdown(-1);
+     }
+   TS("Screens Init Done");
+   _e_main_shutdown_push(_e_main_screens_shutdown);
+
    if (e_config->show_splash)
      {
         TS("E_Splash Init");
@@ -635,7 +671,6 @@ main(int argc, char **argv)
         e_init_title_set(_("Enlightenment"));
         e_init_version_set(VERSION);
         e_init_show();
-        pause();
      }
 
    if (e_config->show_splash)
@@ -649,17 +684,6 @@ main(int argc, char **argv)
    TS("E_Intl Post Init Done");
    _e_main_shutdown_push(e_intl_post_shutdown);
 
-   TS("Efreet Init");
-   if (!efreet_init())
-     {
-        e_error_message_show(_("Enlightenment cannot initialize the FDO desktop system.\n"
-                               "Perhaps you lack permissions on ~/.cache/efreet or are\n"
-                               "out of memory or disk space?"));
-        _e_main_shutdown(-1);
-     }
-   TS("Efreet Init Done");
-   _e_main_shutdown_push(efreet_shutdown);
-
    if (!really_know)
      {
         TS("Test File Format Support");
@@ -674,31 +698,6 @@ main(int argc, char **argv)
         efreet_icon_extension_add(".edj");
      }
 
-   e_screensaver_preinit();
-
-   if (e_config->show_splash)
-     e_init_status_set(_("Setup Actions"));
-   TS("E_Actions Init");
-   if (!e_actions_init())
-     {
-        e_error_message_show(_("Enlightenment cannot set up its actions system.\n"));
-        _e_main_shutdown(-1);
-     }
-   TS("E_Actions Init Done");
-   _e_main_shutdown_push(e_actions_shutdown);
-
-   if (e_config->show_splash)
-     e_init_status_set(_("Setup Screens"));
-   TS("Screens Init");
-   if (!_e_main_screens_init())
-     {
-        e_error_message_show(_("Enlightenment set up window management for all the screens on your system\n"
-                               "failed. Perhaps another window manager is running?\n"));
-        _e_main_shutdown(-1);
-     }
-   TS("Screens Init Done");
-   _e_main_shutdown_push(_e_main_screens_shutdown);
-
    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++)