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;
|
const char *theme_file;
|
||||||
|
|
||||||
Ecore_Timer *popup_timer;
|
Ecore_Timer *popup_timer;
|
||||||
|
Ecore_Timer *popup_del_job;
|
||||||
Eina_List *popup_handlers;
|
Eina_List *popup_handlers;
|
||||||
E_Fm2_Icon_Info *popup_icon;
|
E_Fm2_Icon_Info *popup_icon;
|
||||||
E_Popup *popup;
|
E_Popup *popup;
|
||||||
|
@ -740,6 +741,7 @@ _e_fwin_free(E_Fwin *fwin)
|
||||||
e_object_del(E_OBJECT(fwin->fad->dia));
|
e_object_del(E_OBJECT(fwin->fad->dia));
|
||||||
fwin->fad = NULL;
|
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) e_object_del(E_OBJECT(fwin->popup));
|
||||||
if (fwin->popup_timer) ecore_timer_del(fwin->popup_timer);
|
if (fwin->popup_timer) ecore_timer_del(fwin->popup_timer);
|
||||||
fwin->popup_timer = NULL;
|
fwin->popup_timer = NULL;
|
||||||
|
@ -862,16 +864,21 @@ _e_fwin_icon_popup(void *data)
|
||||||
return EINA_FALSE;
|
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
|
static void
|
||||||
_e_fwin_icon_mouse_out(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
_e_fwin_icon_mouse_out(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||||
{
|
{
|
||||||
E_Fwin *fwin = data;
|
E_Fwin *fwin = data;
|
||||||
|
|
||||||
if (fwin->popup_timer) ecore_timer_del(fwin->popup_timer);
|
E_FREE_FUNC(fwin->popup_timer, ecore_timer_del);
|
||||||
if (fwin->popup) e_object_del(E_OBJECT(fwin->popup));
|
if (!fwin->popup_del_job) fwin->popup_del_job = ecore_job_add((Ecore_Cb)_e_fwin_icon_popup_del, fwin);
|
||||||
fwin->popup = NULL;
|
|
||||||
fwin->popup_timer = NULL;
|
|
||||||
fwin->popup_icon = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue