From de275b5a8566829af7b91dbdcf8b30c9dc007274 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Thu, 14 Jan 2010 22:10:28 +0000 Subject: [PATCH] Make selected desktops show in advanced config e_widget_ilist_count does not work as it did, as it e_widget_ilist_multi_select only queues commands and the change is not instant. Add own counter for ilist position. Also set pointer for config desk_list to new list on apply. SVN revision: 45138 --- src/bin/e_int_shelf_config.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c index 5b5c9e4ca..7912dc91f 100644 --- a/src/bin/e_int_shelf_config.c +++ b/src/bin/e_int_shelf_config.c @@ -167,7 +167,7 @@ static void _desk_sel_list_load(E_Config_Dialog_Data *cfdata) { Evas *evas; - int x, y; + int x, y, i; if (!cfdata->desk_sel_list) return; evas = evas_object_evas_get(cfdata->desk_sel_list); @@ -176,6 +176,7 @@ _desk_sel_list_load(E_Config_Dialog_Data *cfdata) e_widget_ilist_freeze(cfdata->desk_sel_list); e_widget_ilist_clear(cfdata->desk_sel_list); + i = 0; for (y = 0; y < e_config->zone_desks_y_count; y++) for (x = 0; x < e_config->zone_desks_x_count; x++) { @@ -186,14 +187,14 @@ _desk_sel_list_load(E_Config_Dialog_Data *cfdata) desk = e_desk_at_xy_get(cfdata->es->zone, x, y); e_widget_ilist_append(cfdata->desk_sel_list, NULL, desk->name, NULL, NULL, NULL); + i++; EINA_LIST_FOREACH(cfdata->desk_list, l, sd) { if (!sd) continue; if ((sd->x != x) || (sd->y != y)) continue; - e_widget_ilist_multi_select(cfdata->desk_sel_list, - e_widget_ilist_count(cfdata->desk_sel_list)); + e_widget_ilist_multi_select(cfdata->desk_sel_list, i); break; } } @@ -433,7 +434,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) sd->y = desk->y; desk_list = eina_list_append(desk_list, sd); } - cfdata->escfg->desk_list = desk_list; + cfdata->desk_list = cfdata->escfg->desk_list = desk_list; } if (restart)