forked from enlightenment/enlightenment
Use better method for returning all desktops in case the ones in ~/.local
don't have a category set. SVN revision: 32967
This commit is contained in:
parent
c47a631bde
commit
3ac3134bac
|
@ -997,10 +997,10 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
Evas_List *l = NULL, *apps = NULL, *mlist = NULL;
|
Evas_List *l = NULL, *apps = NULL, *mlist = NULL;
|
||||||
Ecore_List *cats = NULL;
|
Ecore_List *cats = NULL;
|
||||||
Evas_Hash *mimes = NULL;
|
Evas_Hash *mimes = NULL;
|
||||||
|
Efreet_Desktop *desk = NULL;
|
||||||
E_Fwin_Apps_Dialog *fad;
|
E_Fwin_Apps_Dialog *fad;
|
||||||
E_Fm2_Icon_Info *ici;
|
E_Fm2_Icon_Info *ici;
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
char *cat;
|
|
||||||
const char *f;
|
const char *f;
|
||||||
int need_dia = 0;
|
int need_dia = 0;
|
||||||
|
|
||||||
|
@ -1174,7 +1174,6 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
if (mlist)
|
if (mlist)
|
||||||
{
|
{
|
||||||
Ecore_List *ml;
|
Ecore_List *ml;
|
||||||
Efreet_Desktop *desktop;
|
|
||||||
|
|
||||||
for (l = mlist; l; l = l->next)
|
for (l = mlist; l; l = l->next)
|
||||||
{
|
{
|
||||||
|
@ -1182,8 +1181,8 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
if (ml)
|
if (ml)
|
||||||
{
|
{
|
||||||
ecore_list_first_goto(ml);
|
ecore_list_first_goto(ml);
|
||||||
while ((desktop = ecore_list_next(ml)))
|
while ((desk = ecore_list_next(ml)))
|
||||||
apps = evas_list_append(apps, desktop);
|
apps = evas_list_append(apps, desk);
|
||||||
ecore_list_destroy(ml);
|
ecore_list_destroy(ml);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1207,12 +1206,11 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
*/
|
*/
|
||||||
if (evas_list_count(mlist) <= 1)
|
if (evas_list_count(mlist) <= 1)
|
||||||
{
|
{
|
||||||
Efreet_Desktop *desktop = NULL;
|
|
||||||
char pcwd[4096];
|
char pcwd[4096];
|
||||||
Ecore_List *files_list = NULL;
|
Ecore_List *files_list = NULL;
|
||||||
|
|
||||||
need_dia = 1;
|
need_dia = 1;
|
||||||
if (mlist) desktop = e_exehist_mime_desktop_get(mlist->data);
|
if (mlist) desk = e_exehist_mime_desktop_get(mlist->data);
|
||||||
getcwd(pcwd, sizeof(pcwd));
|
getcwd(pcwd, sizeof(pcwd));
|
||||||
chdir(e_fm2_real_path_get(fwin->fm_obj));
|
chdir(e_fm2_real_path_get(fwin->fm_obj));
|
||||||
|
|
||||||
|
@ -1236,16 +1234,16 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
need_dia = 0;
|
need_dia = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (desktop)
|
if (desk)
|
||||||
{
|
{
|
||||||
if (fwin->win)
|
if (fwin->win)
|
||||||
{
|
{
|
||||||
if (e_exec(fwin->win->border->zone, desktop, NULL, files_list, "fwin"))
|
if (e_exec(fwin->win->border->zone, desk, NULL, files_list, "fwin"))
|
||||||
need_dia = 0;
|
need_dia = 0;
|
||||||
}
|
}
|
||||||
else if (fwin->zone)
|
else if (fwin->zone)
|
||||||
{
|
{
|
||||||
if (e_exec(fwin->zone, desktop, NULL, files_list, "fwin"))
|
if (e_exec(fwin->zone, desk, NULL, files_list, "fwin"))
|
||||||
need_dia = 0;
|
need_dia = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1296,12 +1294,10 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
fad->o_specific = o;
|
fad->o_specific = o;
|
||||||
for (l = apps; l; l = l->next)
|
for (l = apps; l; l = l->next)
|
||||||
{
|
{
|
||||||
Efreet_Desktop *desktop;
|
desk = l->data;
|
||||||
|
oi = e_util_desktop_icon_add(desk, "24x24", evas);
|
||||||
desktop = l->data;
|
e_widget_ilist_append(o, oi, desk->name, NULL, NULL,
|
||||||
oi = e_util_desktop_icon_add(desktop, "24x24", evas);
|
efreet_util_path_to_file_id(desk->orig_path));
|
||||||
e_widget_ilist_append(o, oi, desktop->name, NULL, NULL,
|
|
||||||
efreet_util_path_to_file_id(desktop->orig_path));
|
|
||||||
}
|
}
|
||||||
e_widget_ilist_go(o);
|
e_widget_ilist_go(o);
|
||||||
e_widget_ilist_thaw(o);
|
e_widget_ilist_thaw(o);
|
||||||
|
@ -1321,25 +1317,14 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
evas_event_freeze(evas);
|
evas_event_freeze(evas);
|
||||||
edje_freeze();
|
edje_freeze();
|
||||||
e_widget_ilist_freeze(o);
|
e_widget_ilist_freeze(o);
|
||||||
cats = efreet_util_desktop_categories_list();
|
cats = efreet_util_desktop_name_glob_list("*");
|
||||||
ecore_list_sort(cats, ECORE_COMPARE_CB(strcmp), ECORE_SORT_MIN);
|
ecore_list_sort(cats, ECORE_COMPARE_CB(_e_fwin_dlg_cb_desk_sort), ECORE_SORT_MIN);
|
||||||
ecore_list_first_goto(cats);
|
ecore_list_first_goto(cats);
|
||||||
while ((cat = ecore_list_next(cats)))
|
while ((desk = ecore_list_next(cats)))
|
||||||
{
|
{
|
||||||
Ecore_List *desks = NULL;
|
if (!evas_list_find(l, desk))
|
||||||
Efreet_Desktop *desk = NULL;
|
l = evas_list_append(l, desk);
|
||||||
|
|
||||||
desks = efreet_util_desktop_category_list(cat);
|
|
||||||
if (!desks) continue;
|
|
||||||
ecore_list_sort(desks, ECORE_COMPARE_CB(_e_fwin_dlg_cb_desk_sort), ECORE_SORT_MIN);
|
|
||||||
ecore_list_first_goto(desks);
|
|
||||||
while ((desk = ecore_list_next(desks)))
|
|
||||||
{
|
|
||||||
if (!evas_list_find(l, desk))
|
|
||||||
l = evas_list_append(l, desk);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (cat) free(cat);
|
|
||||||
if (cats) ecore_list_destroy(cats);
|
if (cats) ecore_list_destroy(cats);
|
||||||
if (l) l = evas_list_sort(l, -1, _e_fwin_dlg_cb_desk_list_sort);
|
if (l) l = evas_list_sort(l, -1, _e_fwin_dlg_cb_desk_list_sort);
|
||||||
|
|
||||||
|
@ -1347,8 +1332,7 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files, int always)
|
||||||
for (mlist = l; mlist; mlist = mlist->next)
|
for (mlist = l; mlist; mlist = mlist->next)
|
||||||
{
|
{
|
||||||
Evas_Object *icon = NULL;
|
Evas_Object *icon = NULL;
|
||||||
Efreet_Desktop *desk = NULL;
|
|
||||||
|
|
||||||
desk = mlist->data;
|
desk = mlist->data;
|
||||||
if (!desk) continue;
|
if (!desk) continue;
|
||||||
icon = e_util_desktop_icon_add(desk, "24x24", evas);
|
icon = e_util_desktop_icon_add(desk, "24x24", evas);
|
||||||
|
|
Loading…
Reference in New Issue