forked from enlightenment/enlightenment
parent
652da596a2
commit
3f6dd189c8
|
@ -20,15 +20,14 @@
|
|||
#undef E_TYPEDEFS
|
||||
#include "e_xinerama.h"
|
||||
|
||||
EAPI int e_init_init(void);
|
||||
EAPI 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);
|
||||
EAPI int e_init_init(void);
|
||||
EAPI 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);
|
||||
|
@ -132,7 +131,7 @@ static int
|
|||
_e_ipc_init(void)
|
||||
{
|
||||
char *sdir;
|
||||
|
||||
|
||||
sdir = getenv("E_IPC_SOCKET");
|
||||
if (!sdir)
|
||||
{
|
||||
|
@ -144,11 +143,11 @@ _e_ipc_init(void)
|
|||
}
|
||||
_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;
|
||||
}
|
||||
|
||||
|
@ -172,7 +171,7 @@ static int
|
|||
_e_ipc_cb_server_del(void *data, int type, void *event)
|
||||
{
|
||||
Ecore_Ipc_Event_Server_Del *e;
|
||||
|
||||
|
||||
e = event;
|
||||
/* quit now */
|
||||
ecore_main_loop_quit();
|
||||
|
@ -183,7 +182,7 @@ static int
|
|||
_e_ipc_cb_server_data(void *data, int type, void *event)
|
||||
{
|
||||
Ecore_Ipc_Event_Server_Data *e;
|
||||
|
||||
|
||||
e = event;
|
||||
if (e->major != 7/*E_IPC_DOMAIN_INIT*/) return 1;
|
||||
switch (e->minor)
|
||||
|
@ -209,28 +208,26 @@ static int _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_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;
|
||||
|
||||
static Ecore_Timer *_e_init_timeout_timer = NULL;
|
||||
|
||||
/* externally accessible functions */
|
||||
EAPI int
|
||||
e_init_init(void)
|
||||
{
|
||||
int w, h;
|
||||
Ecore_X_Window root;
|
||||
Ecore_X_Window *roots;
|
||||
int i, num;
|
||||
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);
|
||||
|
@ -247,31 +244,30 @@ e_init_init(void)
|
|||
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);
|
||||
_e_init_ecore_evas = _e_init_evas_new(roots[i], w, h, &_e_init_win);
|
||||
_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);
|
||||
_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)
|
||||
|
@ -301,7 +297,7 @@ e_init_init(void)
|
|||
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",
|
||||
|
@ -417,7 +413,7 @@ static int
|
|||
_e_init_cb_window_configure(void *data, int ev_type, 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 */
|
||||
|
@ -443,7 +439,7 @@ _e_init_evas_new(Ecore_X_Window root, int w, int h, Ecore_X_Window *winret)
|
|||
Evas *e;
|
||||
Eina_List *l;
|
||||
const char *path;
|
||||
|
||||
|
||||
if ((engine == 0) || (engine == 1))
|
||||
{
|
||||
ee = ecore_evas_software_x11_new(NULL, root, 0, 0, w, h);
|
||||
|
@ -479,12 +475,13 @@ _e_init_evas_new(Ecore_X_Window root, int w, int h, Ecore_X_Window *winret)
|
|||
}
|
||||
|
||||
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);
|
||||
|
||||
|
||||
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))
|
||||
|
@ -503,12 +500,12 @@ _e_init_evas_new(Ecore_X_Window root, int w, int h, Ecore_X_Window *winret)
|
|||
}
|
||||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue