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)
commit260928000e3d3094be9a23f92fb6dca08f586d3a
treee39e576a2a89d308d237c103759b9059c3c482ad
parentc8283bfb06472bd5500f0f6b453c37e18151c969
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: svn+ssh://svn.enlightenment.org/var/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