forked from enlightenment/enlightenment
fix a crazy fileman bug where calculating the size of the tooltip would cause a mouse out event on the icon, deleting the tooltip while it was being created
This commit is contained in:
parent
3a68bf115b
commit
38615a27d4
|
@ -41,6 +41,7 @@ struct _E_Fwin
|
|||
const char *theme_file;
|
||||
|
||||
Ecore_Timer *popup_timer;
|
||||
Ecore_Timer *popup_del_job;
|
||||
Eina_List *popup_handlers;
|
||||
E_Fm2_Icon_Info *popup_icon;
|
||||
E_Popup *popup;
|
||||
|
@ -740,6 +741,7 @@ _e_fwin_free(E_Fwin *fwin)
|
|||
e_object_del(E_OBJECT(fwin->fad->dia));
|
||||
fwin->fad = NULL;
|
||||
}
|
||||
if (fwin->popup_del_job) ecore_job_del(fwin->popup_del_job);
|
||||
if (fwin->popup) e_object_del(E_OBJECT(fwin->popup));
|
||||
if (fwin->popup_timer) ecore_timer_del(fwin->popup_timer);
|
||||
fwin->popup_timer = NULL;
|
||||
|
@ -862,16 +864,21 @@ _e_fwin_icon_popup(void *data)
|
|||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fwin_icon_popup_del(E_Fwin *fwin)
|
||||
{
|
||||
E_FREE_FUNC(fwin->popup, e_object_del);
|
||||
fwin->popup_icon = NULL;
|
||||
fwin->popup_del_job = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fwin_icon_mouse_out(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
E_Fwin *fwin = data;
|
||||
|
||||
if (fwin->popup_timer) ecore_timer_del(fwin->popup_timer);
|
||||
if (fwin->popup) e_object_del(E_OBJECT(fwin->popup));
|
||||
fwin->popup = NULL;
|
||||
fwin->popup_timer = NULL;
|
||||
fwin->popup_icon = NULL;
|
||||
E_FREE_FUNC(fwin->popup_timer, ecore_timer_del);
|
||||
if (!fwin->popup_del_job) fwin->popup_del_job = ecore_job_add((Ecore_Cb)_e_fwin_icon_popup_del, fwin);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue