proper shutdown of entries.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 17 Feb 2010 23:43:31 +0000 (23:43 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 17 Feb 2010 23:43:31 +0000 (23:43 +0000)
commit3e295de621c98b5ce6f3d20802d3c2e47e6b1e49
treee39e576a2a89d308d237c103759b9059c3c482ad
parent05490ef89728e27f3e87f938f0b32c6130a5acc2
proper shutdown of entries.

 * must disconnect connected callbacks, particularly those to
   canvas. The object we previously connect will die anyway, but
   canvas continues alive, dispatching its
   EVAS_CALLBACK_CANVAS_FOCUS_IN and EVAS_CALLBACK_CANVAS_FOCUS_OUT,
   causing nasty segmentation faults!

 * must call _edje_clean_objects() *AFTER* the entry is shut
   down. Otherwise ed->evas will be NULL and
   evas_event_callback_del_full() will fail. I left extra checks on
   those, since this call will return the given data (in our case
   "ed") and NULL when callback connection was not found.

 * flag existence of entries and if they were already initalized and
   shutdown before, avoid redoing such work.

This fixes a stupid crash that bugged editje for a while now.

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@46263 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
src/lib/edje_entry.c
src/lib/edje_load.c
src/lib/edje_private.h
src/lib/edje_smart.c