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");

-- 


Reply via email to