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