Fix tooltip visibility lock.

Whenever object starts hiding Elementary sends "elm,action,hide", so
when it aborts such action it must always emit "elm,action,show" and
the best place to do this is at _elm_tooltip_hide_anim_stop().

Note: _elm_tooltip_hide() calls _elm_tooltip_hide_anim_stop() and thus
would show the object, but this is void as right after that the
tooltip object is deleted and thus the signal is never processed and
as we don't go back to main loop, nothing changes on screen.



SVN revision: 52167
This commit is contained in:
Gustavo Sverzut Barbieri 2010-09-12 17:46:44 +00:00
parent 191ccae951
commit 448f5eee60
1 changed files with 7 additions and 4 deletions

View File

@ -100,13 +100,14 @@ _elm_tooltip_obj_mouse_move_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj
static void
_elm_tooltip_show(Elm_Tooltip *tt)
{
if ((tt->hide_timer) && (tt->tooltip))
edje_object_signal_emit(tt->tooltip, "elm,action,show", "elm");
_elm_tooltip_show_timer_stop(tt);
_elm_tooltip_hide_anim_stop(tt);
if (tt->tooltip) return;
if (tt->tooltip)
{
_elm_tooltip_reconfigure_job_start(tt);
return;
}
tt->tooltip = edje_object_add(tt->evas);
if (!tt->tooltip) return;
@ -209,6 +210,8 @@ static void
_elm_tooltip_hide_anim_stop(Elm_Tooltip *tt)
{
if (!tt->hide_timer) return;
if (tt->tooltip)
edje_object_signal_emit(tt->tooltip, "elm,action,show", "elm");
ecore_timer_del(tt->hide_timer);
tt->hide_timer = NULL;
}