diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 8e11a3308..2c91dd882 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -2797,6 +2797,10 @@ _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf) /* FIXME: end go away chunk */ } + if(S_ISDIR(ic->info.statinfo.st_mode)) + { + ic->info.mime = evas_stringshare_add("x-directory/normal"); + } if (!ic->info.mime) { mime = e_fm_mime_filename_get(ic->info.file); diff --git a/src/bin/e_fwin.c b/src/bin/e_fwin.c index a389cd2ab..b298cf335 100644 --- a/src/bin/e_fwin.c +++ b/src/bin/e_fwin.c @@ -726,8 +726,7 @@ static E_Fwin_Exec_Type _e_fwin_file_is_exec(E_Fm2_Icon_Info *ici) { /* special file or dir - can't exec anyway */ - if ((S_ISDIR(ici->statinfo.st_mode)) || - (S_ISCHR(ici->statinfo.st_mode)) || + if ((S_ISCHR(ici->statinfo.st_mode)) || (S_ISBLK(ici->statinfo.st_mode)) || (S_ISFIFO(ici->statinfo.st_mode)) || (S_ISSOCK(ici->statinfo.st_mode))) @@ -936,22 +935,16 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always) { if (ici->link) { - if (!S_ISDIR(ici->statinfo.st_mode)) - { - f = e_fm_mime_filename_get(ici->link); - mimes = evas_hash_del(mimes, f, (void *)1); - mimes = evas_hash_direct_add(mimes, f, (void *)1); - } + f = e_fm_mime_filename_get(ici->link); + mimes = evas_hash_del(mimes, f, (void *)1); + mimes = evas_hash_direct_add(mimes, f, (void *)1); } else { - snprintf(buf, sizeof(buf), "%s/%s", - e_fm2_real_path_get(fwin->fm_obj), ici->file); - if (!S_ISDIR(ici->statinfo.st_mode)) - { - mimes = evas_hash_del(mimes, ici->mime, (void *)1); - mimes = evas_hash_direct_add(mimes, ici->mime, (void *)1); - } + snprintf(buf, sizeof(buf), "%s/%s", + e_fm2_real_path_get(fwin->fm_obj), ici->file); + mimes = evas_hash_del(mimes, ici->mime, (void *)1); + mimes = evas_hash_direct_add(mimes, ici->mime, (void *)1); } } } diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index 258bf7c5c..9db8b2a60 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -888,11 +888,14 @@ e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, const char *size, E_M EAPI int e_util_dir_check(const char *dir) { + char msg[PATH_MAX]; + if (!ecore_file_exists(dir)) { - if (!ecore_file_mkdir(dir)) + if (!ecore_file_mkpath(dir)) { - e_util_dialog_show("Error creating the directory: %s. Check that you have correct permissions set.", dir); + snprintf (msg, sizeof (msg), "Failed to create directory: %s .
Check that you have correct permissions set.", dir); + e_util_dialog_show("Error creating directory", msg); return 0; } } @@ -900,7 +903,8 @@ e_util_dir_check(const char *dir) { if (!ecore_file_is_dir(dir)) { - e_util_dialog_show("Error creating the directory: %s. A file of that name already exists.", dir); + snprintf (msg, sizeof (msg), "Failed to create directory: %s .
A file of that name already exists.", dir); + e_util_dialog_show("Error creating directory", msg); return 0; } }