fix next calgrind bitch. yay!

SVN revision: 69737
This commit is contained in:
Carsten Haitzler 2012-03-29 09:54:21 +00:00
parent 5208f9fc80
commit 2101792842
3 changed files with 26 additions and 10 deletions

View File

@ -467,26 +467,37 @@ _access_item_mouse_out_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU
}
}
static void
_access_item_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
static void _access_item_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__);
EAPI void
_elm_access_item_unregister(Elm_Widget_Item *item)
{
Elm_Access_Info *ac;
evas_object_event_callback_del_full(obj, EVAS_CALLBACK_MOUSE_IN,
_access_item_mouse_in_cb, data);
evas_object_event_callback_del_full(obj, EVAS_CALLBACK_MOUSE_OUT,
_access_item_mouse_out_cb, data);
evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL,
_access_item_del_cb, data);
ac = ((Elm_Widget_Item *)data)->access;
((Elm_Widget_Item *)data)->access = NULL;
ac = item->access;
if (ac)
{
evas_object_event_callback_del_full(ac->hoverobj,
EVAS_CALLBACK_MOUSE_IN,
_access_item_mouse_in_cb, item);
evas_object_event_callback_del_full(ac->hoverobj,
EVAS_CALLBACK_MOUSE_OUT,
_access_item_mouse_out_cb, item);
evas_object_event_callback_del_full(ac->hoverobj,
EVAS_CALLBACK_DEL,
_access_item_del_cb, item);
item->access = NULL;
_elm_access_clear(ac);
free(ac);
}
}
static void
_access_item_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
_elm_access_item_unregister((Elm_Widget_Item *)data);
}
EAPI void
_elm_access_item_register(Elm_Widget_Item *item, Evas_Object *hoverobj)
{
@ -499,6 +510,7 @@ _elm_access_item_register(Elm_Widget_Item *item, Evas_Object *hoverobj)
evas_object_event_callback_add(hoverobj, EVAS_CALLBACK_DEL,
_access_item_del_cb, item);
ac = calloc(1, sizeof(Elm_Access_Info));
ac->hoverobj = hoverobj;
item->access = ac;
}

View File

@ -2859,6 +2859,8 @@ _elm_widget_item_free(Elm_Widget_Item *item)
return;
}
_elm_access_item_unregister(item);
EINA_LIST_FREE(item->callbacks, cb) free(cb);
if (item->del_func)

View File

@ -228,6 +228,7 @@ struct _Elm_Access_Item
struct _Elm_Access_Info
{
Evas_Object *hoverobj;
Eina_List *items;
Ecore_Timer *delay_timer;
};
@ -244,6 +245,7 @@ EAPI void _elm_access_object_hilight(Evas_Object *obj);
EAPI void _elm_access_object_unhilight(Evas_Object *obj);
EAPI void _elm_access_object_hilight_disable(Evas *e);
EAPI void _elm_access_object_register(Evas_Object *obj, Evas_Object *hoverobj);
EAPI void _elm_access_item_unregister(Elm_Widget_Item *item);
EAPI void _elm_access_item_register(Elm_Widget_Item *item, Evas_Object *hoverobj);
EAPI Eina_Bool _elm_access_2nd_click_timeout(Evas_Object *obj);