update ->apps on up/down

SVN revision: 55662
This commit is contained in:
Sebastian Dransfeld 2010-12-20 12:49:14 +00:00
parent e5ce4d3da8
commit 7e93dba35f
1 changed files with 40 additions and 18 deletions

View File

@ -560,7 +560,7 @@ static void
_cb_up(void *data, void *data2 __UNUSED__) _cb_up(void *data, void *data2 __UNUSED__)
{ {
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
Efreet_Desktop *desk; Eina_List *l;
Evas *evas; Evas *evas;
const char *lbl; const char *lbl;
int sel; int sel;
@ -573,17 +573,28 @@ _cb_up(void *data, void *data2 __UNUSED__)
sel = e_widget_ilist_selected_get(cfdata->o_order); sel = e_widget_ilist_selected_get(cfdata->o_order);
lbl = e_widget_ilist_selected_label_get(cfdata->o_order); lbl = e_widget_ilist_selected_label_get(cfdata->o_order);
if ((desk = eina_list_search_unsorted(cfdata->apps, _cb_desks_name, lbl))) if ((l = eina_list_search_unsorted_list(cfdata->apps, _cb_desks_name, lbl)))
{ {
Efreet_Desktop *desk;
Evas_Object *icon = NULL; Evas_Object *icon = NULL;
e_widget_ilist_remove_num(cfdata->o_order, sel); desk = eina_list_data_get(l);
e_widget_ilist_go(cfdata->o_order); if (l->prev)
icon = e_util_desktop_icon_add(desk, 24, evas); {
e_widget_ilist_prepend_relative(cfdata->o_order, icon, desk->name, Eina_List *ll;
_cb_order_list_selected, cfdata,
NULL, (sel - 1)); ll = l->prev;
e_widget_ilist_selected_set(cfdata->o_order, (sel - 1)); cfdata->apps = eina_list_remove_list(cfdata->apps, l);
cfdata->apps = eina_list_prepend_relative(cfdata->apps, desk, ll);
e_widget_ilist_remove_num(cfdata->o_order, sel);
e_widget_ilist_go(cfdata->o_order);
icon = e_util_desktop_icon_add(desk, 24, evas);
e_widget_ilist_prepend_relative(cfdata->o_order, icon, desk->name,
_cb_order_list_selected, cfdata,
NULL, (sel - 1));
e_widget_ilist_selected_set(cfdata->o_order, (sel - 1));
}
} }
e_widget_ilist_go(cfdata->o_order); e_widget_ilist_go(cfdata->o_order);
@ -596,7 +607,7 @@ static void
_cb_down(void *data, void *data2 __UNUSED__) _cb_down(void *data, void *data2 __UNUSED__)
{ {
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
Efreet_Desktop *desk; Eina_List *l;
Evas *evas; Evas *evas;
const char *lbl; const char *lbl;
int sel; int sel;
@ -609,17 +620,28 @@ _cb_down(void *data, void *data2 __UNUSED__)
sel = e_widget_ilist_selected_get(cfdata->o_order); sel = e_widget_ilist_selected_get(cfdata->o_order);
lbl = e_widget_ilist_selected_label_get(cfdata->o_order); lbl = e_widget_ilist_selected_label_get(cfdata->o_order);
if ((desk = eina_list_search_unsorted(cfdata->apps, _cb_desks_name, lbl))) if ((l = eina_list_search_unsorted_list(cfdata->apps, _cb_desks_name, lbl)))
{ {
Efreet_Desktop *desk;
Evas_Object *icon = NULL; Evas_Object *icon = NULL;
e_widget_ilist_remove_num(cfdata->o_order, sel); desk = eina_list_data_get(l);
e_widget_ilist_go(cfdata->o_order); if (l->next)
icon = e_util_desktop_icon_add(desk, 24, evas); {
e_widget_ilist_append_relative(cfdata->o_order, icon, desk->name, Eina_List *ll;
_cb_order_list_selected, cfdata,
NULL, sel); ll = l->next;
e_widget_ilist_selected_set(cfdata->o_order, (sel + 1)); cfdata->apps = eina_list_remove_list(cfdata->apps, l);
cfdata->apps = eina_list_append_relative(cfdata->apps, desk, ll);
e_widget_ilist_remove_num(cfdata->o_order, sel);
e_widget_ilist_go(cfdata->o_order);
icon = e_util_desktop_icon_add(desk, 24, evas);
e_widget_ilist_append_relative(cfdata->o_order, icon, desk->name,
_cb_order_list_selected, cfdata,
NULL, sel);
e_widget_ilist_selected_set(cfdata->o_order, (sel + 1));
}
} }
e_widget_ilist_go(cfdata->o_order); e_widget_ilist_go(cfdata->o_order);