Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        Makefile.am e_border.c e_container.c e_init.c e_init.h e_ipc.c 
        e_ipc.h e_main.c e_manager.c e_manager.h e_start_main.c 
        e_startup.c 
Added Files:
        e_init_main.c 


Log Message:


move init splash to its own process to make it smoother and able to be up
before the main loop.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/Makefile.am,v
retrieving revision 1.201
retrieving revision 1.202
diff -u -3 -r1.201 -r1.202
--- Makefile.am 20 Aug 2007 18:50:19 -0000      1.201
+++ Makefile.am 24 Sep 2007 01:16:47 -0000      1.202
@@ -20,7 +20,8 @@
 enlightenment_start \
 enlightenment_thumb \
 enlightenment_sys \
-enlightenment_fm
+enlightenment_fm \
+enlightenment_init
 
 ENLIGHTENMENTHEADERS = \
 e.h \
@@ -290,7 +291,7 @@
 e_ipc_codec.c \
 e_remote_main.c
 
-enlightenment_remote_LDFLAGS = @e_libs@ @dlopen_libs@
+enlightenment_remote_LDFLAGS = @e_libs@
 
 enlightenment_imc_SOURCES = \
 e.h \
@@ -309,7 +310,7 @@
 e_user.c \
 e_sha1.c
 
-enlightenment_thumb_LDFLAGS = @e_libs@ @dlopen_libs@
+enlightenment_thumb_LDFLAGS = @e_libs@
 
 enlightenment_fm_SOURCES = \
 e_fm_main.c \
@@ -322,7 +323,13 @@
 enlightenment_sys_SOURCES = \
 e_sys_main.c
 
-enlightenment_sys_LDFLAGS = @e_libs@ @dlopen_libs@
+enlightenment_sys_LDFLAGS = @e_libs@
+
+enlightenment_init_SOURCES = \
+e_init_main.c \
+e_xinerama.c
+
+enlightenment_init_LDFLAGS = @e_libs@
 
 setuid_root_mode = a=rx,u+xs
 install-exec-hook:
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.603
retrieving revision 1.604
diff -u -3 -r1.603 -r1.604
--- e_border.c  4 Sep 2007 16:28:24 -0000       1.603
+++ e_border.c  24 Sep 2007 01:16:47 -0000      1.604
@@ -197,6 +197,8 @@
    E_EVENT_BORDER_FOCUS_OUT = ecore_event_type_new();
    E_EVENT_BORDER_PROPERTY = ecore_event_type_new();
 
+   e_init_undone();
+   
    return 1;
 }
 
@@ -4317,6 +4319,7 @@
 {
    Evas_List *l;
    
+   printf("EFREET DESKTOP LIST CHANGE\n");
    /* mark all borders for desktop/icon updates */
    for (l = borders; l; l = l->next)
      {
@@ -4329,6 +4332,8 @@
             bd->changed = 1;
          }
      }
+   e_init_status_set(_("Desktop files scan done"));
+   e_init_done();
    return 1;
 }
 
@@ -4339,6 +4344,8 @@
    Evas_List *l;
 
    event = ev;
+   printf("EFREET DESKTOP DESKTOP CHANGE\n");
+   e_init_status_set(_("Desktop file scan"));
    switch (event->change)
      {
       case EFREET_DESKTOP_CHANGE_ADD:
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_container.c,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -3 -r1.116 -r1.117
--- e_container.c       13 May 2007 14:18:59 -0000      1.116
+++ e_container.c       24 Sep 2007 01:16:47 -0000      1.117
@@ -135,9 +135,8 @@
      }
 
    /* Put init win on top */
-   mwin = e_init_window_get();
-   if (mwin)
-     ecore_x_window_configure(mwin,
+   if (man->initwin)
+     ecore_x_window_configure(man->initwin,
                              ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
                              ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
                              0, 0, 0, 0, 0,
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_init.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -3 -r1.43 -r1.44
--- e_init.c    24 Mar 2007 22:53:16 -0000      1.43
+++ e_init.c    24 Sep 2007 01:16:47 -0000      1.44
@@ -3,6 +3,238 @@
  */
 #include "e.h"
 
+#if 1
+
+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 int
+_e_init_cb_exe_event_del(void *data, int type, void *event)
+{
+   Ecore_Exe_Event_Del *ev;
+   Evas_List *l;
+   
+   ev = event;
+   if (ev->exe == init_exe)
+     {
+       /* init exited */
+//     ecore_exe_free(init_exe);
+       init_exe = NULL;
+     }
+   return 1;
+}
+
+EAPI int
+e_init_init(void)
+{   
+   exe_del_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
+                                             _e_init_cb_exe_event_del,
+                                             NULL);
+   client = NULL;
+   done = 0;
+   return 1;
+}
+
+EAPI int
+e_init_shutdown(void)
+{
+   /* if not killed, kill init */
+   e_init_hide();
+   if (title) evas_stringshare_del(title);
+   if (version) evas_stringshare_del(version);
+   title = NULL;
+   version = NULL;
+   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;
+
+   /* exec init */
+
+   if (!e_config->init_default_theme)
+     s = e_path_find(path_init, "default.edj");
+   else if (e_config->init_default_theme[0] == '/')
+     s = evas_stringshare_add(e_config->init_default_theme);
+   else
+     s = e_path_find(path_init, e_config->init_default_theme);
+   
+   if (s) theme = strdup(e_util_filename_escape(s));
+   else theme = strdup("XdX");
+   if (s) evas_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), "%s/enlightenment_init %s %i %i %s %s",
+           e_prefix_bin_get(),
+           theme, 
+           e_canvas_engine_decide(e_config->evas_engine_init),
+           e_config->font_hinting,
+           tit, ver);
+   free(theme);
+   free(tit);
+   free(ver);
+   /* FIXME: add font path to cmd-line */
+   init_exe = ecore_exe_run(buf, NULL);
+}
+
+EAPI void
+e_init_hide(void)
+{
+   if (init_exe) ecore_exe_terminate(init_exe);
+}
+
+EAPI void
+e_init_title_set(const char *str)
+{
+   if (title) evas_stringshare_del(title);
+   title = evas_stringshare_add(str);
+}
+
+EAPI void
+e_init_version_set(const char *str)
+{
+   if (version) evas_stringshare_del(version);
+   version = evas_stringshare_add(str);
+}
+
+EAPI void
+e_init_status_set(const char *str)
+{
+   printf("---STAT %p %s\n", client, str);
+   if (!client) return;
+   ecore_ipc_client_send(client, E_IPC_DOMAIN_INIT, 1, 0, 0, 0, str, 
strlen(str) + 1);
+   ecore_ipc_client_flush(client);
+}
+
+EAPI void
+e_init_done(void)
+{
+   undone--;
+   if (undone > 0) return;
+   done = 1;
+   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);
+}
+
+EAPI void
+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)
+              {
+                 Evas_List *l;
+                 
+                 for (l = e_manager_list(); l; l = l->next)
+                   {
+                      E_Manager *man;
+                      
+                      man = l->data;
+                      if (man->root == initwins[i + 0])
+                        {
+                           man->initwin = initwins[i + 1];
+                           ecore_x_window_raise(man->initwin);
+                        }
+                   }
+              }
+         }
+     }
+   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)
+     {
+       Evas_List *l;
+       
+       client = NULL;
+       for (l = e_manager_list(); l; l = l->next)
+         {
+            E_Manager *man;
+            
+            man = l->data;
+            man->initwin = 0;
+         }
+     }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#else /* OLD INIT CODE */
 static void _e_init_icons_del(void);
 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);
@@ -314,3 +546,4 @@
                            "one you use."));
    return 0;
 }
+#endif
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_init.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- e_init.h    24 Mar 2007 22:53:16 -0000      1.7
+++ e_init.h    24 Sep 2007 01:16:47 -0000      1.8
@@ -13,10 +13,10 @@
 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 Ecore_X_Window e_init_window_get(void);
 EAPI void           e_init_done(void);
+EAPI void           e_init_undone(void);
+EAPI void           e_init_client_data(Ecore_Ipc_Event_Client_Data *e);
+EAPI void           e_init_client_del(Ecore_Ipc_Event_Client_Del *e);
     
-EAPI void           e_init_icons_desktop_add(Efreet_Desktop *desktop);
-
 #endif
 #endif
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ipc.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -3 -r1.58 -r1.59
--- e_ipc.c     5 Apr 2007 06:59:02 -0000       1.58
+++ e_ipc.c     24 Sep 2007 01:16:47 -0000      1.59
@@ -119,6 +119,7 @@
    /* 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 1;
 }
@@ -150,6 +151,9 @@
        break;
       case E_IPC_DOMAIN_FM:
        e_fm2_client_data(e);
+       break;
+      case E_IPC_DOMAIN_INIT:
+       e_init_client_data(e);
        break;
       default:
        break;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ipc.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_ipc.h     5 Apr 2007 06:59:02 -0000       1.23
+++ e_ipc.h     24 Sep 2007 01:16:47 -0000      1.24
@@ -15,6 +15,7 @@
    E_IPC_DOMAIN_EVENT,
    E_IPC_DOMAIN_THUMB,
    E_IPC_DOMAIN_FM,
+   E_IPC_DOMAIN_INIT,
    E_IPC_DOMAIN_LAST
 } E_Ipc_Domain;
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.230
retrieving revision 1.231
diff -u -3 -r1.230 -r1.231
--- e_main.c    11 Sep 2007 11:57:48 -0000      1.230
+++ e_main.c    24 Sep 2007 01:16:47 -0000      1.231
@@ -303,7 +303,6 @@
          ecore_file_unlink(buf);
      }
    
-   TS("edje init");
    
    TS("ecore init");
    /* basic ecore init */
@@ -425,40 +424,6 @@
    e_hints_init();
    TS("x hints done");
    
-   TS("efreet");
-   /* init FDO desktop */
-   if (!efreet_init())
-     {
-        e_error_message_show(_("Enlightenment cannot initialize the FDO 
desktop system.\n"
-                               "Perhaps you are out of memory?"));
-        _e_main_shutdown(-1);
-     }
-   _e_main_shutdown_push(efreet_shutdown);
-   if (!efreet_util_init())
-     {
-        e_error_message_show(_("Enlightenment cannot initialize the FDO 
desktop system.\n"
-                               "Perhaps you are out of memory?"));
-        _e_main_shutdown(-1);
-     }
-   _e_main_shutdown_push(efreet_util_shutdown);
-   TS("efreet done");
-
-   TS("efreet paths");
-     {
-       Ecore_List *list;
-       
-       list = efreet_icon_extra_list_get();
-       if (list)
-         {
-            snprintf(buf, sizeof(buf), "%s/.e/e/icons", e_user_homedir_get());
-            ecore_list_prepend(list, (void *)ecore_string_instance(buf));
-            snprintf(buf, sizeof(buf), "%s/data/icons", e_prefix_data_get());
-            ecore_list_prepend(list, (void *)ecore_string_instance(buf));
-         }
-     }
-   efreet_icon_extension_add(".edj");
-   TS("efreet paths done");
-
    TS("ecore_evas init");
    /* init the evas wrapper */
    if (!ecore_evas_init())
@@ -531,25 +496,6 @@
 //   _e_main_shutdown_push(ecore_evas_shutdown);        
    TS("test done");
    
-   TS("thumb init");
-   /* init the enlightenment thumbnailing system */
-   if (!e_thumb_init())
-    {
-       e_error_message_show(_("Enlightenment cannot initialize the 
Thumbnailing system.\n"));
-       _e_main_shutdown(-1);
-    }
-   _e_main_shutdown_push(e_thumb_shutdown);
-   
-   TS("sys init");
-   /* init the enlightenment sys command system */
-   if (!e_sys_init())
-    {
-       e_error_message_show(_("Enlightenment cannot initialize the System 
Command system.\n"));
-       _e_main_shutdown(-1);
-    }
-   _e_main_shutdown_push(e_sys_shutdown);
-   
-   
    /*** Finished loading subsystems, Loading WM Specifics ***/
         
    TS("dirs");
@@ -594,30 +540,10 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_intl_post_shutdown);
-   TS("actions");
-   /* init actions system */
-   if (!e_actions_init())
-     {
-       e_error_message_show(_("Enlightenment cannot set up its actions 
system."));
-       _e_main_shutdown(-1);
-     }
-   _e_main_shutdown_push(e_actions_shutdown);
-   TS("bindings");
-   /* init bindings system */
-   if (!e_bindings_init())
-     {
-       e_error_message_show(_("Enlightenment cannot set up its bindings 
system."));
-       _e_main_shutdown(-1);
-     }
-   _e_main_shutdown_push(e_bindings_shutdown);
-   TS("popup");
-   /* init popup system */
-   if (!e_popup_init())
-     {
-       e_error_message_show(_("Enlightenment cannot set up its popup 
system."));
-       _e_main_shutdown(-1);
-     }
-   _e_main_shutdown_push(e_popup_shutdown);
+   TS("ipc");
+   /* setup e ipc service */
+   if (e_ipc_init())
+     _e_main_shutdown_push(e_ipc_shutdown);
    
    /* setup edje to animate @ e_config->framerate frames per sec. */
    edje_frametime_set(1.0 / e_config->framerate);
@@ -641,14 +567,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_theme_shutdown);
-   TS("bg");
-   /* init desktop background system */
-   if (!e_bg_init())
-     {
-       e_error_message_show(_("Enlightenment cannot set up its desktop 
background system."));
-       _e_main_shutdown(-1);
-     }
-   _e_main_shutdown_push(e_bg_init);
+   
    TS("splash");
    if (!((!e_config->show_splash) || (after_restart)))
      {
@@ -659,8 +578,106 @@
                                    "Perhaps you are out of memory?"));
             _e_main_shutdown(-1);
          }
+       e_init_title_set(_("Enlightenment"));
+       e_init_version_set(VERSION);
+       e_init_show();
        _e_main_shutdown_push(e_init_shutdown);
      }
+   
+   TS("efreet");
+   e_init_status_set(_("Starting Efreet"));
+   /* init FDO desktop */
+   if (!efreet_init())
+     {
+        e_error_message_show(_("Enlightenment cannot initialize the FDO 
desktop system.\n"
+                               "Perhaps you are out of memory?"));
+        _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(efreet_shutdown);
+   if (!efreet_util_init())
+     {
+        e_error_message_show(_("Enlightenment cannot initialize the FDO 
desktop system.\n"
+                               "Perhaps you are out of memory?"));
+        _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(efreet_util_shutdown);
+   TS("efreet done");
+
+   e_init_status_set(_("Setting up Paths"));
+   TS("efreet paths");
+     {
+       Ecore_List *list;
+       
+       list = efreet_icon_extra_list_get();
+       if (list)
+         {
+            snprintf(buf, sizeof(buf), "%s/.e/e/icons", e_user_homedir_get());
+            ecore_list_prepend(list, (void *)ecore_string_instance(buf));
+            snprintf(buf, sizeof(buf), "%s/data/icons", e_prefix_data_get());
+            ecore_list_prepend(list, (void *)ecore_string_instance(buf));
+         }
+     }
+   efreet_icon_extension_add(".edj");
+   TS("efreet paths done");
+
+   e_init_status_set(_("Setup Thumbnailer"));
+   TS("thumb init");
+   /* init the enlightenment thumbnailing system */
+   if (!e_thumb_init())
+    {
+       e_error_message_show(_("Enlightenment cannot initialize the 
Thumbnailing system.\n"));
+       _e_main_shutdown(-1);
+    }
+   _e_main_shutdown_push(e_thumb_shutdown);
+   
+   e_init_status_set(_("Setup System Controls"));
+   TS("sys init");
+   /* init the enlightenment sys command system */
+   if (!e_sys_init())
+    {
+       e_error_message_show(_("Enlightenment cannot initialize the System 
Command system.\n"));
+       _e_main_shutdown(-1);
+    }
+   _e_main_shutdown_push(e_sys_shutdown);
+   
+   e_init_status_set(_("Setup Actions"));
+   TS("actions");
+   /* init actions system */
+   if (!e_actions_init())
+     {
+       e_error_message_show(_("Enlightenment cannot set up its actions 
system."));
+       _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(e_actions_shutdown);
+   e_init_status_set(_("Setup Bindings"));
+   TS("bindings");
+   /* init bindings system */
+   if (!e_bindings_init())
+     {
+       e_error_message_show(_("Enlightenment cannot set up its bindings 
system."));
+       _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(e_bindings_shutdown);
+   e_init_status_set(_("Setup Popups"));
+   TS("popup");
+   /* init popup system */
+   if (!e_popup_init())
+     {
+       e_error_message_show(_("Enlightenment cannot set up its popup 
system."));
+       _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(e_popup_shutdown);
+   
+   e_init_status_set(_("Setup Wallpaper"));
+   TS("bg");
+   /* init desktop background system */
+   if (!e_bg_init())
+     {
+       e_error_message_show(_("Enlightenment cannot set up its desktop 
background system."));
+       _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(e_bg_init);
+   e_init_status_set(_("Setup Screens"));
    TS("screens");
    /* manage the root window */
    if (!_e_main_screens_init())
@@ -670,6 +687,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(_e_main_screens_shutdown);
+   e_init_status_set(_("Setup Execution System"));
    TS("exec");
    /* init app system */
    if (!e_exec_init())
@@ -678,6 +696,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_exec_shutdown);
+   e_init_status_set(_("Setup Remembers"));
    TS("remember");
    /* do remember stuff */
    if (!e_remember_init(after_restart ? E_STARTUP_RESTART: E_STARTUP_START))
@@ -690,11 +709,7 @@
    TS("container freeze");
    e_container_all_freeze();
    
-   TS("ipc");
-   /* setup e ipc service */
-   if (e_ipc_init())
-     _e_main_shutdown_push(e_ipc_shutdown);
-
+   e_init_status_set(_("Setup FM"));
    TS("fm2");
    /* init the enlightenment file manager */
    if (!e_fm2_init())
@@ -712,6 +727,7 @@
     }
    _e_main_shutdown_push(e_fwin_shutdown);
 */
+   e_init_status_set(_("Setup Message System"));
    TS("msg");
    /* setup generic msg handling etc */
    if (!e_msg_init())
@@ -720,6 +736,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_msg_shutdown);
+   e_init_status_set(_("Setup DND"));
    TS("dnd");
    /* setup dnd */
    if (!e_dnd_init())
@@ -728,6 +745,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_dnd_shutdown);
+   e_init_status_set(_("Setup Grab Input HAnding"));
    TS("grabinput");
    /* setup input grabbing co-operation system */
    if (!e_grabinput_init())
@@ -736,6 +754,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_grabinput_shutdown);
+   e_init_status_set(_("Setup Modules"));
    TS("modules");
    /* setup module loading etc */
    if (!e_module_init())
@@ -744,6 +763,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_module_shutdown);
+   e_init_status_set(_("Setup Color Classes"));
    TS("colorclasses");
    /* setup color_class */
    if (!e_color_class_init())
@@ -752,6 +772,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_color_class_shutdown);
+   e_init_status_set(_("Setup Gadcon"));
    TS("gadcon");
    /* setup gadcon */
    if (!e_gadcon_init())
@@ -760,6 +781,7 @@
        _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(e_gadcon_shutdown);
+   e_init_status_set(_("Setup Shelves"));
    TS("shelves");
    /* setup shelves */
    if (!e_shelf_init())
@@ -769,6 +791,7 @@
      }
    _e_main_shutdown_push(e_shelf_shutdown);
 
+   e_init_status_set(_("Setup DPMS"));
    TS("dpms");     
    /* setup dpms */
    if (!e_dpms_init())
@@ -777,6 +800,7 @@
        _e_main_shutdown(-1);
      }
     
+   e_init_status_set(_("Setup Screensaver"));
    TS("screensaver");
    /* setup screensaver */
    if (!e_screensaver_init())
@@ -785,6 +809,7 @@
        _e_main_shutdown(-1);
      }
      
+   e_init_status_set(_("Setup Mouse"));
    TS("mouse");     
    /* setup mouse accel */
    if (!e_mouse_init())
@@ -793,6 +818,7 @@
        _e_main_shutdown(-1);
      }
 
+   e_init_status_set(_("Setup Desklock"));
    TS("desklock");
    /* setup desklock */
    if (!e_desklock_init())
@@ -802,6 +828,7 @@
      }
    _e_main_shutdown_push(e_desklock_shutdown);
 
+   e_init_status_set(_("Set Up File Ordering"));
    TS("order");
    if (!e_order_init())
      {
@@ -819,10 +846,6 @@
 /* ecore_x_ungrab(); */
    
    TS("init properites");
-   e_init_title_set(_("Enlightenment"));
-   e_init_version_set(VERSION);
-   e_init_status_set(_("Enlightenment Starting. Please wait."));
-   
    if (!nostartup)
      {
        if (after_restart) e_startup(E_STARTUP_RESTART);
@@ -841,6 +864,7 @@
    e_test();
 
    /* load modules */
+   e_init_status_set(_("Load Modules"));
    TS("load modules");
    if (!safe_mode)
      e_module_all_load();
@@ -864,12 +888,14 @@
        e_config_save_queue();
      }
    
+   e_init_status_set(_("Configure Shelves"));
    TS("shelf config init");
    e_shelf_config_init();
 
    /* an idle enterer to be called after all others */
    _e_main_idle_enterer_after = ecore_idle_enterer_add(_e_main_cb_idler_after, 
NULL);
 
+   e_init_status_set(_("Almost Done"));
    TS("MAIN LOOP AT LAST");
    /* no longer starting up */
    starting = 0;
@@ -1099,7 +1125,6 @@
        E_Container *con;
        
        man = e_manager_new(roots[i], i);
-       e_init_show();
        if (man)
          {
             e_manager_show(man);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -3 -r1.64 -r1.65
--- e_manager.c 5 Apr 2007 11:59:17 -0000       1.64
+++ e_manager.c 24 Sep 2007 01:16:47 -0000      1.65
@@ -100,15 +100,7 @@
        ecore_x_icccm_title_set(man->win, "Enlightenment Manager");
        ecore_x_netwm_name_set(man->win, "Enlightenment Manager");
        mwin = e_menu_grab_window_get();
-       if (!mwin) mwin = e_init_window_get();
-       if (!mwin)
-         ecore_x_window_raise(man->win);
-       else
-         ecore_x_window_configure(man->win,
-                                  ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
-                                  ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
-                                  0, 0, 0, 0, 0,
-                                  mwin, ECORE_X_WINDOW_STACK_BELOW);
+       ecore_x_window_raise(man->win);
      }
    else
      {
@@ -183,7 +175,32 @@
             int ret;
 
             ecore_x_window_attributes_get(windows[i], &att);
-            if ((att.override) || (att.input_only)) continue;
+            if ((att.override) || (att.input_only))
+              {
+                 if (att.override)
+                   {
+                      char *wname = NULL, *wclass = NULL;
+                      
+                      ecore_x_icccm_name_class_get(windows[i], 
+                                                   &wname, &wclass);
+                      if ((wname) && (wclass) &&
+                          (!strcmp(wname, "E")) &&
+                          (!strcmp(wclass, "Init_Window")))
+                        {
+                           free(wname);
+                           free(wclass);
+                           man->initwin = windows[i];
+                        }
+                      else
+                        {
+                           if (wname) free(wname);
+                           if (wclass) free(wclass);
+                           continue;
+                        }
+                   }
+                 else
+                   continue;
+              }
             if (!ecore_x_window_prop_property_get(windows[i],
                                                   atom_xmbed,
                                                   atom_xmbed, 32,
@@ -298,7 +315,7 @@
        Ecore_X_Window mwin;
        
        mwin = e_menu_grab_window_get();
-       if (!mwin) mwin = e_init_window_get();
+       if (!mwin) mwin = man->initwin;
        if (!mwin)
          ecore_x_window_raise(man->win);
        else
@@ -406,7 +423,7 @@
        Ecore_X_Window mwin;
        
        mwin = e_menu_grab_window_get();
-       if (!mwin) mwin = e_init_window_get();
+       if (!mwin) mwin = man->initwin;
        if (!mwin)
          ecore_x_window_raise(man->win);
        else
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_manager.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_manager.h 28 Sep 2005 13:30:49 -0000      1.15
+++ e_manager.h 24 Sep 2007 01:16:47 -0000      1.16
@@ -24,6 +24,7 @@
    Evas_List           *containers;
 
    E_Pointer           *pointer;
+   Ecore_X_Window       initwin;
 };
 
 EAPI int        e_manager_init(void);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_start_main.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- e_start_main.c      28 Apr 2007 05:03:04 -0000      1.13
+++ e_start_main.c      24 Sep 2007 01:16:47 -0000      1.14
@@ -321,7 +321,7 @@
 int
 main(int argc, char **argv)
 {
-   int i, do_precache = 1;
+   int i, do_precache = 0;
    char buf[16384], **args, *p;
 
    prefix_determine(argv[0]);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_startup.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- e_startup.c 25 Mar 2007 22:45:00 -0000      1.12
+++ e_startup.c 24 Sep 2007 01:16:47 -0000      1.13
@@ -31,6 +31,7 @@
    startup_apps = e_order_new(buf);
    if (!startup_apps) return;
    start_app_pos = 0;
+   e_init_undone();
    _e_startup();
 }
 
@@ -57,9 +58,8 @@
        return;
      }
    e_exec(NULL, desktop, NULL, NULL, NULL);
-   snprintf(buf, sizeof(buf), _("Starting %s"), desktop->name);
+   snprintf(buf, sizeof(buf), "%s %s", _("Starting"), desktop->name);
    e_init_status_set(buf);   
-   e_init_icons_desktop_add(desktop);
    ecore_job_add(_e_startup_next_cb, NULL);
 }
 



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to