if (it->base)
evas_object_del(it->base);
if (it->base_item)
- evas_object_del(it->base_item);
+ {
+ evas_object_smart_callback_del(it->base_item, "unpressed", _unpress_box_cb);
+ evas_object_smart_callback_del(it->base_item, "clicked", _clicked_box_cb);
+ evas_object_del(it->base_item);
+ }
if (it->view)
evas_object_del(it->view);
}
static void
_del_button_callback(void *data)
{
- Elm_Controlbar_Item *it = (Elm_Controlbar_Item *)data;
+ Widget_Data *wd = (Widget_Data *)data;
+ if (!wd) return;
+ const Eina_List *l;
+ Elm_Controlbar_Item * it;
- evas_object_smart_callback_del(it->base_item, "unpressed", _unpress_box_cb);
- evas_object_smart_callback_del(it->base_item, "clicked", _clicked_box_cb);
+ EINA_LIST_FOREACH(wd->items, l, it)
+ {
+ evas_object_smart_callback_del(it->base_item, "unpressed", _unpress_box_cb);
+ evas_object_smart_callback_del(it->base_item, "clicked", _clicked_box_cb);
+ }
- it->wd->del_callback_job = NULL;
+ wd->del_callback_job = NULL;
}
static void
if (it)
{
if (wd->del_callback_job) ecore_job_del(wd->del_callback_job);
- wd->del_callback_job = ecore_job_add(_del_button_callback, it);
+ wd->del_callback_job = ecore_job_add(_del_button_callback, wd);
}
_cancel_selected_box(wd);
if (it)
{
if (wd->del_callback_job) ecore_job_del(wd->del_callback_job);
- wd->del_callback_job = ecore_job_add(_del_button_callback, it);
+ wd->del_callback_job = ecore_job_add(_del_button_callback, wd);
_select_box(it);
}
}