if (win->deferred_child_eval_job) ecore_job_del(win->deferred_child_eval_job);
if (win->shot.info) eina_stringshare_del(win->shot.info);
if (win->shot.timer) ecore_timer_del(win->shot.timer);
+ evas_object_event_callback_del_full(win->win_obj, EVAS_CALLBACK_DEL,
+ _elm_win_obj_callback_del, win);
while (((child = evas_object_bottom_get(win->evas))) &&
(child != obj))
{
Elm_Tooltip *tt = data;
tt->content = NULL;
tt->visible_lock = EINA_FALSE;
- _elm_tooltip_hide(tt);
+ if (tt->tooltip) _elm_tooltip_hide(tt);
}
static void
static void
_elm_tooltip_hide(Elm_Tooltip *tt)
{
+ Evas_Object *del;
_elm_tooltip_show_timer_stop(tt);
_elm_tooltip_hide_anim_stop(tt);
_elm_tooltip_reconfigure_job_stop(tt);
evas_object_event_callback_del_full
(tt->eventarea, EVAS_CALLBACK_MOUSE_MOVE, _elm_tooltip_obj_mouse_move_cb, tt);
- if (tt->tt_win) evas_object_del(tt->tt_win);
- else evas_object_del(tt->tooltip);
+ del = tt->tt_win ?: tt->tooltip;
tt->tt_win = NULL;
tt->tt_evas = NULL;
tt->tooltip = NULL;
+ evas_object_del(del);
}
static void