load modules later.

SVN revision: 30135
This commit is contained in:
Carsten Haitzler 2007-05-29 11:25:54 +00:00
parent 4f836fd57e
commit ca9e193c8c
8 changed files with 74 additions and 66 deletions

View File

@ -1990,8 +1990,9 @@ e_border_fullscreen(E_Border *bd, E_Fullscreen policy)
bd->client_inset.b = 0; bd->client_inset.b = 0;
/* e_zone_fullscreen_set(bd->zone, 1); */ /* e_zone_fullscreen_set(bd->zone, 1); */
if (!e_config->allow_above_fullscreen)
e_border_layer_set(bd, 200);
e_border_layer_set(bd, 200);
if ((evas_list_count(bd->zone->container->zones) > 1) || (policy == E_FULLSCREEN_RESIZE)) if ((evas_list_count(bd->zone->container->zones) > 1) || (policy == E_FULLSCREEN_RESIZE))
{ {
e_border_move_resize(bd, bd->zone->x, bd->zone->y, bd->zone->w, bd->zone->h); e_border_move_resize(bd, bd->zone->x, bd->zone->y, bd->zone->w, bd->zone->h);

View File

@ -428,6 +428,7 @@ e_config_init(void)
E_CONFIG_VAL(D, T, maximize_policy, INT); /**/ E_CONFIG_VAL(D, T, maximize_policy, INT); /**/
E_CONFIG_VAL(D, T, allow_manip, INT); /**/ E_CONFIG_VAL(D, T, allow_manip, INT); /**/
E_CONFIG_VAL(D, T, border_fix_on_shelf_toggle, INT); /**/ E_CONFIG_VAL(D, T, border_fix_on_shelf_toggle, INT); /**/
E_CONFIG_VAL(D, T, allow_above_fullscreen, INT); /**/
E_CONFIG_VAL(D, T, kill_if_close_not_possible, INT); /**/ E_CONFIG_VAL(D, T, kill_if_close_not_possible, INT); /**/
E_CONFIG_VAL(D, T, kill_process, INT); /**/ E_CONFIG_VAL(D, T, kill_process, INT); /**/
E_CONFIG_VAL(D, T, kill_timer_wait, DOUBLE); /**/ E_CONFIG_VAL(D, T, kill_timer_wait, DOUBLE); /**/
@ -1411,7 +1412,11 @@ e_config_init(void)
e_config->menu_favorites_show = 1; e_config->menu_favorites_show = 1;
e_config->menu_apps_show = 1; e_config->menu_apps_show = 1;
IFCFGEND; IFCFGEND;
IFCFG(0x0119);
e_config->allow_above_fullscreen = 1;
IFCFGEND;
e_config->config_version = E_CONFIG_FILE_VERSION; e_config->config_version = E_CONFIG_FILE_VERSION;
#if 0 /* example of new config */ #if 0 /* example of new config */
@ -1474,6 +1479,7 @@ e_config_init(void)
E_CONFIG_LIMIT(e_config->maximize_policy, E_MAXIMIZE_FULLSCREEN, E_MAXIMIZE_DIRECTION); E_CONFIG_LIMIT(e_config->maximize_policy, E_MAXIMIZE_FULLSCREEN, E_MAXIMIZE_DIRECTION);
E_CONFIG_LIMIT(e_config->allow_manip, 0, 1); E_CONFIG_LIMIT(e_config->allow_manip, 0, 1);
E_CONFIG_LIMIT(e_config->border_fix_on_shelf_toggle, 0, 1); E_CONFIG_LIMIT(e_config->border_fix_on_shelf_toggle, 0, 1);
E_CONFIG_LIMIT(e_config->allow_above_fullscreen, 0, 1);
E_CONFIG_LIMIT(e_config->kill_if_close_not_possible, 0, 1); E_CONFIG_LIMIT(e_config->kill_if_close_not_possible, 0, 1);
E_CONFIG_LIMIT(e_config->kill_process, 0, 1); E_CONFIG_LIMIT(e_config->kill_process, 0, 1);
E_CONFIG_LIMIT(e_config->kill_timer_wait, 0.0, 120.0); E_CONFIG_LIMIT(e_config->kill_timer_wait, 0.0, 120.0);

View File

@ -169,6 +169,7 @@ struct _E_Config
int maximize_policy; // GUI int maximize_policy; // GUI
int allow_manip; // GUI int allow_manip; // GUI
int border_fix_on_shelf_toggle; // GUI int border_fix_on_shelf_toggle; // GUI
int allow_above_fullscreen; // GUI
int kill_if_close_not_possible; int kill_if_close_not_possible;
int kill_process; int kill_process;
double kill_timer_wait; double kill_timer_wait;

View File

@ -951,26 +951,24 @@ e_fm2_all_icons_update(void)
} }
EAPI Evas_Object * EAPI Evas_Object *
e_fm2_icon_get(Evas *evas, const char *realpath, e_fm2_icon_get(Evas *evas, E_Fm2_Icon *ic,
E_Fm2_Icon *ic, E_Fm2_Icon_Info *ici,
const char *keyhint,
void (*gen_func) (void *data, Evas_Object *obj, void *event_info), void (*gen_func) (void *data, Evas_Object *obj, void *event_info),
void *data, int force_gen, const char **type_ret) void *data, int force_gen, const char **type_ret)
{ {
Evas_Object *oic = NULL; Evas_Object *oic = NULL;
char buf[PATH_MAX], *p; char buf[PATH_MAX], *p;
if (ici->icon) if (ic->info.icon)
{ {
/* custom icon */ /* custom icon */
if (ici->icon[0] == '/') if (ic->info.icon[0] == '/')
{ {
/* path to icon file */ /* path to icon file */
p = strrchr(ici->icon, '.'); p = strrchr(ic->info.icon, '.');
if ((p) && (!strcmp(p, ".edj"))) if ((p) && (!strcmp(p, ".edj")))
{ {
oic = edje_object_add(evas); oic = edje_object_add(evas);
if (!edje_object_file_set(oic, ici->icon, "icon")) if (!edje_object_file_set(oic, ic->info.icon, "icon"))
_e_fm2_theme_edje_object_set(ic->sd, oic, _e_fm2_theme_edje_object_set(ic->sd, oic,
"base/theme/fileman", "base/theme/fileman",
"e/icons/fileman/file"); "e/icons/fileman/file");
@ -978,23 +976,23 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
else else
{ {
oic = e_icon_add(evas); oic = e_icon_add(evas);
e_icon_file_set(oic, ici->icon); e_icon_file_set(oic, ic->info.icon);
e_icon_fill_inside_set(oic, 1); e_icon_fill_inside_set(oic, 1);
} }
if (type_ret) *type_ret = "CUSTOM"; if (type_ret) *type_ret = "CUSTOM";
} }
else else
{ {
if (ici->mime) if (ic->info.mime)
{ {
const char *icon; const char *icon;
icon = e_fm_mime_icon_get(ici->mime); icon = e_fm_mime_icon_get(ic->info.mime);
if (!strcmp(icon, "DESKTOP")) if (!strcmp(icon, "DESKTOP"))
{ {
Efreet_Desktop *ef; Efreet_Desktop *ef;
snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file); snprintf(buf, sizeof(buf), "%s/%s", ic->sd->realpath, ic->info.file);
ef = efreet_desktop_get(buf); ef = efreet_desktop_get(buf);
if (ef) oic = e_util_desktop_icon_add(ef, "48x48", evas); if (ef) oic = e_util_desktop_icon_add(ef, "48x48", evas);
if (type_ret) *type_ret = "DESKTOP"; if (type_ret) *type_ret = "DESKTOP";
@ -1007,13 +1005,13 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
{ {
/* theme icon */ /* theme icon */
oic = edje_object_add(evas); oic = edje_object_add(evas);
e_util_edje_icon_set(oic, ici->icon); e_util_edje_icon_set(oic, ic->info.icon);
if (type_ret) *type_ret = "THEME_ICON"; if (type_ret) *type_ret = "THEME_ICON";
} }
} }
return oic; return oic;
} }
if (S_ISDIR(ici->statinfo.st_mode)) if (S_ISDIR(ic->info.statinfo.st_mode))
{ {
oic = edje_object_add(evas); oic = edje_object_add(evas);
_e_fm2_theme_edje_object_set(ic->sd, oic, _e_fm2_theme_edje_object_set(ic->sd, oic,
@ -1022,9 +1020,9 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
} }
else else
{ {
if (ici->icon_type == 1) if (ic->info.icon_type == 1)
{ {
snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file); snprintf(buf, sizeof(buf), "%s/%s", ic->sd->realpath, ic->info.file);
oic = e_thumb_icon_add(evas); oic = e_thumb_icon_add(evas);
e_thumb_icon_file_set(oic, buf, NULL); e_thumb_icon_file_set(oic, buf, NULL);
e_thumb_icon_size_set(oic, 128, 128); e_thumb_icon_size_set(oic, 128, 128);
@ -1037,11 +1035,11 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
_e_fm2_icon_thumb(ic, oic, force_gen); _e_fm2_icon_thumb(ic, oic, force_gen);
if (type_ret) *type_ret = "THUMB"; if (type_ret) *type_ret = "THUMB";
} }
else if (ici->mime) else if (ic->info.mime)
{ {
const char *icon; const char *icon;
icon = e_fm_mime_icon_get(ici->mime); icon = e_fm_mime_icon_get(ic->info.mime);
/* use mime type to select icon */ /* use mime type to select icon */
if (!icon) if (!icon)
{ {
@ -1053,7 +1051,7 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
} }
else if (!strcmp(icon, "THUMB")) else if (!strcmp(icon, "THUMB"))
{ {
snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file); snprintf(buf, sizeof(buf), "%s/%s", ic->sd->realpath, ic->info.file);
oic = e_thumb_icon_add(evas); oic = e_thumb_icon_add(evas);
e_thumb_icon_file_set(oic, buf, NULL); e_thumb_icon_file_set(oic, buf, NULL);
@ -1072,7 +1070,7 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
Efreet_Desktop *ef; Efreet_Desktop *ef;
oic = NULL; oic = NULL;
snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file); snprintf(buf, sizeof(buf), "%s/%s", ic->sd->realpath, ic->info.file);
ef = efreet_desktop_get(buf); ef = efreet_desktop_get(buf);
if (ef) oic = e_util_desktop_icon_add(ef, "48x48", evas); if (ef) oic = e_util_desktop_icon_add(ef, "48x48", evas);
if (type_ret) *type_ret = "DESKTOP"; if (type_ret) *type_ret = "DESKTOP";
@ -1113,13 +1111,14 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
} }
else else
{ {
snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file); snprintf(buf, sizeof(buf), "%s/%s", ic->sd->realpath, ic->info.file);
/* fallback */ /* fallback */
if ((e_util_glob_case_match(ici->file, "*.edj"))) if ((e_util_glob_case_match(ic->info.file, "*.edj")))
{ {
oic = e_thumb_icon_add(evas); oic = e_thumb_icon_add(evas);
if (keyhint) if (ic->sd->config->icon.key_hint)
e_thumb_icon_file_set(oic, buf, keyhint); e_thumb_icon_file_set(oic, buf,
ic->sd->config->icon.key_hint);
else else
{ {
/* FIXME: There is probably a quicker way of doing this. */ /* FIXME: There is probably a quicker way of doing this. */
@ -1140,8 +1139,8 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
_e_fm2_icon_thumb(ic, oic, force_gen); _e_fm2_icon_thumb(ic, oic, force_gen);
if (type_ret) *type_ret = "THUMB"; if (type_ret) *type_ret = "THUMB";
} }
else if ((e_util_glob_case_match(ici->file, "*.desktop")) || else if ((e_util_glob_case_match(ic->info.file, "*.desktop")) ||
(e_util_glob_case_match(ici->file, "*.directory"))) (e_util_glob_case_match(ic->info.file, "*.directory")))
{ {
Efreet_Desktop *ef; Efreet_Desktop *ef;
@ -1153,7 +1152,7 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
// frees - doesnt just unref. // frees - doesnt just unref.
// if (ef) efreet_desktop_free(ef); // if (ef) efreet_desktop_free(ef);
} }
else if (e_util_glob_case_match(ici->file, "*.imc")) else if (e_util_glob_case_match(ic->info.file, "*.imc"))
{ {
E_Input_Method_Config *imc; E_Input_Method_Config *imc;
Eet_File *imc_ef; Eet_File *imc_ef;
@ -1189,7 +1188,7 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
if (type_ret) *type_ret = "IMC"; if (type_ret) *type_ret = "IMC";
} }
} }
else if (S_ISCHR(ici->statinfo.st_mode)) else if (S_ISCHR(ic->info.statinfo.st_mode))
{ {
oic = edje_object_add(evas); oic = edje_object_add(evas);
_e_fm2_theme_edje_object_set(ic->sd, oic, _e_fm2_theme_edje_object_set(ic->sd, oic,
@ -1197,7 +1196,7 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
"e/icons/fileman/file"); "e/icons/fileman/file");
if (type_ret) *type_ret = "FILE_TYPE"; if (type_ret) *type_ret = "FILE_TYPE";
} }
else if (S_ISBLK(ici->statinfo.st_mode)) else if (S_ISBLK(ic->info.statinfo.st_mode))
{ {
oic = edje_object_add(evas); oic = edje_object_add(evas);
_e_fm2_theme_edje_object_set(ic->sd, oic, _e_fm2_theme_edje_object_set(ic->sd, oic,
@ -1205,7 +1204,7 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
"e/icons/fileman/file"); "e/icons/fileman/file");
if (type_ret) *type_ret = "FILE_TYPE"; if (type_ret) *type_ret = "FILE_TYPE";
} }
else if (S_ISFIFO(ici->statinfo.st_mode)) else if (S_ISFIFO(ic->info.statinfo.st_mode))
{ {
oic = edje_object_add(evas); oic = edje_object_add(evas);
_e_fm2_theme_edje_object_set(ic->sd, oic, _e_fm2_theme_edje_object_set(ic->sd, oic,
@ -1213,7 +1212,7 @@ e_fm2_icon_get(Evas *evas, const char *realpath,
"e/icons/fileman/file"); "e/icons/fileman/file");
if (type_ret) *type_ret = "FILE_TYPE"; if (type_ret) *type_ret = "FILE_TYPE";
} }
else if (S_ISSOCK(ici->statinfo.st_mode)) else if (S_ISSOCK(ic->info.statinfo.st_mode))
{ {
oic = edje_object_add(evas); oic = edje_object_add(evas);
_e_fm2_theme_edje_object_set(ic->sd, oic, _e_fm2_theme_edje_object_set(ic->sd, oic,
@ -3113,8 +3112,7 @@ _e_fm2_icon_icon_direct_set(E_Fm2_Icon *ic, Evas_Object *o, void (*gen_func) (vo
{ {
Evas_Object *oic; Evas_Object *oic;
oic = e_fm2_icon_get(evas_object_evas_get(o), ic->sd->realpath, oic = e_fm2_icon_get(evas_object_evas_get(o), ic,
ic, &(ic->info), ic->sd->config->icon.key_hint,
gen_func, data, force_gen, NULL); gen_func, data, force_gen, NULL);
if (oic) if (oic)
{ {

View File

@ -172,9 +172,7 @@ EAPI void e_fm2_fop_add_add(Evas_Object *obj, const char *file,
*/ */
EAPI Evas_Object * EAPI Evas_Object *
e_fm2_icon_get(Evas *evas, const char *realpath, e_fm2_icon_get(Evas *evas, E_Fm2_Icon *ic,
E_Fm2_Icon *ic, E_Fm2_Icon_Info *ici,
const char *keyhint,
void (*gen_func) (void *data, Evas_Object *obj, void *event_info), void (*gen_func) (void *data, Evas_Object *obj, void *event_info),
void *data, int force_gen, const char **type_ret); void *data, int force_gen, const char **type_ret);
EAPI E_Fm2_Icon_Info *e_fm2_icon_file_info_get(E_Fm2_Icon *ic); EAPI E_Fm2_Icon_Info *e_fm2_icon_file_info_get(E_Fm2_Icon *ic);

View File

@ -342,7 +342,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_entry_readonly_set(ob, 1); e_widget_entry_readonly_set(ob, 1);
e_widget_table_object_append(ot, ob, 1, 0, 1, 1, 1, 0, 1, 0); e_widget_table_object_append(ot, ob, 1, 0, 1, 1, 1, 0, 1, 0);
ob = e_widget_label_add(evas, _("Size:")); ob = e_widget_label_add(evas, _("Size:"));
e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 0, 1, 0); e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 0, 1, 0);
ob = e_widget_entry_add(evas, &(cfdata->size)); ob = e_widget_entry_add(evas, &(cfdata->size));
e_widget_min_size_set(ob, 140, -1); e_widget_min_size_set(ob, 140, -1);
@ -401,9 +401,8 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
ob = e_widget_button_add(evas, "", NULL, _cb_icon_sel, cfdata, cfd); ob = e_widget_button_add(evas, "", NULL, _cb_icon_sel, cfdata, cfd);
cfdata->gui.icon_wid = ob; cfdata->gui.icon_wid = ob;
oi = e_fm2_icon_get(evas, e_fm2_real_path_get(cfdata->fi->fm), oi = e_fm2_icon_get(evas,
cfdata->ic, cfdata->fi, cfdata->ic,
cfg->icon.key_hint,
NULL, NULL, 0, &itype); NULL, NULL, 0, &itype);
e_widget_button_icon_set(ob, oi); e_widget_button_icon_set(ob, oi);
e_widget_frametable_object_append(ot, ob, 0, 0, 1, 3, 0, 1, 0, 1); e_widget_frametable_object_append(ot, ob, 0, 0, 1, 3, 0, 1, 0, 1);

View File

@ -28,6 +28,7 @@ struct _E_Config_Dialog_Data
int border_fix_on_shelf_toggle; int border_fix_on_shelf_toggle;
int border_raise_on_mouse_action; int border_raise_on_mouse_action;
int border_raise_on_focus; int border_raise_on_focus;
int allow_above_fullscreen;
}; };
/* a nice easy setup function that does the dirty work */ /* a nice easy setup function that does the dirty work */
@ -75,6 +76,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->border_fix_on_shelf_toggle = e_config->border_fix_on_shelf_toggle; cfdata->border_fix_on_shelf_toggle = e_config->border_fix_on_shelf_toggle;
cfdata->border_raise_on_mouse_action = e_config->border_raise_on_mouse_action; cfdata->border_raise_on_mouse_action = e_config->border_raise_on_mouse_action;
cfdata->border_raise_on_focus = e_config->border_raise_on_focus; cfdata->border_raise_on_focus = e_config->border_raise_on_focus;
cfdata->allow_above_fullscreen = e_config->allow_above_fullscreen;
} }
static void * static void *
@ -125,6 +127,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
e_config->border_fix_on_shelf_toggle = cfdata->border_fix_on_shelf_toggle; e_config->border_fix_on_shelf_toggle = cfdata->border_fix_on_shelf_toggle;
e_config->border_raise_on_mouse_action = cfdata->border_raise_on_mouse_action; e_config->border_raise_on_mouse_action = cfdata->border_raise_on_mouse_action;
e_config->border_raise_on_focus = cfdata->border_raise_on_focus; e_config->border_raise_on_focus = cfdata->border_raise_on_focus;
e_config->allow_above_fullscreen = cfdata->allow_above_fullscreen;
e_config_save_queue(); e_config_save_queue();
return 1; /* Apply was OK */ return 1; /* Apply was OK */
} }
@ -186,6 +189,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
e_widget_framelist_object_append(of, ob); e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Raise when clicking to focus"), &(cfdata->border_raise_on_focus)); ob = e_widget_check_add(evas, _("Raise when clicking to focus"), &(cfdata->border_raise_on_focus));
e_widget_framelist_object_append(of, ob); e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Allow windows to be above fullscreen window"), &(cfdata->allow_above_fullscreen));
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 1, 0, 1, 1, 1, 1, 1, 1); e_widget_table_object_append(ot, of, 1, 0, 1, 1, 1, 1, 1, 1);
of = e_widget_framelist_add(evas, _("Resistance"), 0); of = e_widget_framelist_add(evas, _("Resistance"), 0);

View File

@ -753,29 +753,6 @@ main(int argc, char **argv)
_e_main_shutdown(-1); _e_main_shutdown(-1);
} }
_e_main_shutdown_push(e_color_class_shutdown); _e_main_shutdown_push(e_color_class_shutdown);
/* load modules */
TS("load modules");
if (!safe_mode)
e_module_all_load();
else
{
e_int_config_modules(e_container_current_get(e_manager_current_get()));
e_error_message_show
(_("Enlightenment crashed early on start and has<br>"
"been restarted. All modules have been disabled<br>"
"and will not be loaded to help remove any problem<br>"
"modules from your configuration. The module<br>"
"configuration dialog should let you select your<br>"
"modules again."));
e_util_dialog_show
(_("Enlightenment crashed early on start and has been restarted"),
_("Enlightenment crashed early on start and has been restarted.<br>"
"All modules have been disabled and will not be loaded to help<br>"
"remove any problem modules from your configuration.<br><br>"
"The module configuration dialog should let you select your<br>"
"modules again."));
e_config_save_queue();
}
TS("gadcon"); TS("gadcon");
/* setup gadcon */ /* setup gadcon */
if (!e_gadcon_init()) if (!e_gadcon_init())
@ -872,10 +849,33 @@ main(int argc, char **argv)
/* run any testing code now we are set up */ /* run any testing code now we are set up */
e_test(); e_test();
/* FIXME: for testing only */ /* load modules */
TS("load modules");
if (!safe_mode)
e_module_all_load();
else
{
e_int_config_modules(e_container_current_get(e_manager_current_get()));
e_error_message_show
(_("Enlightenment crashed early on start and has<br>"
"been restarted. All modules have been disabled<br>"
"and will not be loaded to help remove any problem<br>"
"modules from your configuration. The module<br>"
"configuration dialog should let you select your<br>"
"modules again."));
e_util_dialog_show
(_("Enlightenment crashed early on start and has been restarted"),
_("Enlightenment crashed early on start and has been restarted.<br>"
"All modules have been disabled and will not be loaded to help<br>"
"remove any problem modules from your configuration.<br><br>"
"The module configuration dialog should let you select your<br>"
"modules again."));
e_config_save_queue();
}
TS("shelf config init"); TS("shelf config init");
e_shelf_config_init(); e_shelf_config_init();
/* an idle enterer to be called after all others */ /* 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_main_idle_enterer_after = ecore_idle_enterer_add(_e_main_cb_idler_after, NULL);