discomfitor pushed a commit to branch enlightenment-0.18. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8c73c7919a661bc43aef4f948d1b2cd6d0113807
commit 8c73c7919a661bc43aef4f948d1b2cd6d0113807 Author: Mike Blumenkrantz <[email protected]> Date: Thu Jan 30 10:45:04 2014 -0500 bugfix: comp matching correctly edits in place and doesn't crash --- src/modules/conf_comp/e_mod_config_match.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/modules/conf_comp/e_mod_config_match.c b/src/modules/conf_comp/e_mod_config_match.c index 4823404..f9ed198 100644 --- a/src/modules/conf_comp/e_mod_config_match.c +++ b/src/modules/conf_comp/e_mod_config_match.c @@ -229,7 +229,6 @@ _edit_ok(void *d1, void *d2) Match_Config *m = d1; Evas_Object *dia, *bg, *of = d2; Evas_Object *il; - int n; if (m->title || m->name || m->clas || m->role) { @@ -269,18 +268,21 @@ _edit_ok(void *d1, void *d2) m->match.modal = m->modal; il = m->cfd->cfdata->edit_il; - if (il == m->cfd->cfdata->popups_il) - m->cfd->cfdata->popups = eina_list_append(m->cfd->cfdata->popups, m); - else if (il == m->cfd->cfdata->borders_il) - m->cfd->cfdata->borders = eina_list_append(m->cfd->cfdata->borders, m); - else if (il == m->cfd->cfdata->overrides_il) - m->cfd->cfdata->overrides = eina_list_append(m->cfd->cfdata->overrides, m); - else if (il == m->cfd->cfdata->menus_il) - m->cfd->cfdata->menus = eina_list_append(m->cfd->cfdata->menus, m); - _match_ilist_append(il, m, -1, 0); - n = e_widget_ilist_count(il); - e_widget_ilist_nth_show(il, n - 1, 0); - e_widget_ilist_selected_set(il, n - 1); + { + const Eina_List *l; + E_Ilist_Item *ili; + + EINA_LIST_FOREACH(e_widget_ilist_items_get(il), l, ili) + { + char *txt; + + if (e_widget_ilist_item_data_get(ili) != m) continue; + txt = _match_label_get(m); + e_ilist_item_label_set(ili, txt); + free(txt); + break; + } + } } bg = evas_object_data_get(of, "bg"); dia = evas_object_data_get(of, "dia"); --
