Fixed a bug, the callback was add 2 times in the list -> segfault when the list was...
authorJonathan Atton <jonathan.atton@gmail.com>
Tue, 17 Feb 2009 17:40:24 +0000 (17:40 +0000)
committerJonathan Atton <jonathan.atton@gmail.com>
Tue, 17 Feb 2009 17:40:24 +0000 (17:40 +0000)
SVN revision: 39061

src/bin/e_widget_ilist.c

index 561cf72..eb73b46 100644 (file)
@@ -80,13 +80,18 @@ _queue_timer(void *data)
              wcb->func = qi->func;
              wcb->data = qi->data;
              if (qi->val) wcb->value = strdup(qi->val);
-             wd->callbacks = eina_list_append(wd->callbacks, wcb);
              if (qi->use_relative == 0) // append
+            {
+               wd->callbacks = eina_list_append(wd->callbacks, wcb);
                e_ilist_append(wd->o_ilist, qi->icon, qi->label, qi->header,
                               _e_wid_cb_item_sel, _e_wid_cb_item_hilight, wd, wcb);
+            }
              else if (qi->use_relative == 2) // prepend
+            {
+               wd->callbacks = eina_list_append(wd->callbacks, wcb);
                e_ilist_prepend(wd->o_ilist, qi->icon, qi->label, qi->header,
                                _e_wid_cb_item_sel, _e_wid_cb_item_hilight, wd, wcb);
+            }
              else if (qi->use_relative == 1) // append relative
                {
                   rcb = eina_list_nth(wd->callbacks, qi->relative);