fix bug where window-type tooltip deletion caused infinite recursion

SVN revision: 63761
This commit is contained in:
Mike Blumenkrantz 2011-10-03 04:12:40 +00:00
parent 99efe7327e
commit cf1f395966
2 changed files with 6 additions and 3 deletions

View File

@ -488,6 +488,8 @@ _elm_win_obj_callback_del(void *data, Evas *e, Evas_Object *obj, void *event_inf
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))
{

View File

@ -67,7 +67,7 @@ _elm_tooltip_content_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __U
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
@ -153,6 +153,7 @@ _elm_tooltip_content_del(Elm_Tooltip *tt)
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);
@ -169,12 +170,12 @@ _elm_tooltip_hide(Elm_Tooltip *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