cedric pushed a commit to branch enlightenment-0.17.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=c21bbecf264204b60a096b89ada4fac6e4da6ca5

commit c21bbecf264204b60a096b89ada4fac6e4da6ca5
Author: Mike Blumenkrantz <m.blumenk...@samsung.com>
Date:   Mon Jun 10 13:34:04 2013 +0100

    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
---
 src/modules/fileman/e_fwin.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c
index e0b8d2f..7e5ce70 100644
--- a/src/modules/fileman/e_fwin.c
+++ b/src/modules/fileman/e_fwin.c
@@ -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;
@@ -730,6 +731,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;
@@ -854,15 +856,20 @@ _e_fwin_icon_popup(void *data)
 }
 
 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

-- 


Reply via email to