extra: stop leaking the event rectangle

This commit is contained in:
Marcel Hollerbach 2017-02-05 12:49:39 +01:00
parent 6cda810903
commit d36e68bdd4
1 changed files with 14 additions and 3 deletions

View File

@ -288,13 +288,23 @@ static void
_popup_block_click_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
elm_popup_dismiss(_ui.popup_toolbar);
//from this time on we are not interested in the reference anymore
_ui.popup_toolbar = NULL;
}
static void
_popup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
_dismissed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
evas_object_del(obj);
_ui.popup_toolbar = NULL;
evas_object_del(data);
}
static void
_popup_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
{
//delete the event rect
evas_object_del(data);
if (_ui.popup_toolbar == obj)
_ui.popup_toolbar = NULL;
}
void
@ -311,6 +321,7 @@ extra_ui_show_popup_toolbar(Evas_Object *content)
tooltip = elm_popup_add(_ui.win);
elm_popup_allow_events_set(tooltip, EINA_TRUE);
elm_popup_orient_set(tooltip, ELM_POPUP_ORIENT_TOP);
evas_object_smart_callback_add(tooltip, "dismissed", _dismissed, tooltip);
elm_object_content_set(tooltip, content);
evas_object_show(tooltip);