giant comp rejiggering commit #LAST:

* merge init splash to comp canvas

* remove enlightenment_init exe
This commit is contained in:
Mike Blumenkrantz 2013-04-18 08:28:59 +01:00
parent 3740656a66
commit d10c5b0cf7
6 changed files with 131 additions and 730 deletions

View 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

View 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);
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;
}

View File

@ -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;
}

View 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)

View 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;

View File

@ -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++)