On 01/27/2011 04:14 PM, Enlightenment SVN wrote:
> Log:
> Wait for cache update before e_startup
>
>    We need to wait for the cache build to complete, else we might have no
>    cache, and get no startup apps.
>
> Author:       englebass
> Date:         2011-01-27 13:14:30 -0800 (Thu, 27 Jan 2011)
> New Revision: 56332
> Trac:         http://trac.enlightenment.org/e/changeset/56332
>
> Modified:
>    trunk/e/src/bin/e_startup.c
>
> Modified: trunk/e/src/bin/e_startup.c
> ===================================================================
> --- trunk/e/src/bin/e_startup.c       2011-01-27 21:08:59 UTC (rev 56331)
> +++ trunk/e/src/bin/e_startup.c       2011-01-27 21:14:30 UTC (rev 56332)
> @@ -8,10 +8,12 @@
>   /* local subsystem functions */
>   static void _e_startup(void);
>   static void _e_startup_next_cb(void *data);
> +static Eina_Bool _e_startup_event_cb(void *data, int ev_type, void *ev);
>
>   /* local subsystem globals */
>   static E_Order *startup_apps = NULL;
>   static int start_app_pos = -1;
> +static Ecore_Event_Handler *desktop_cache_update_handler = NULL;
>
>   /* externally accessible functions */
>   EAPI void
> @@ -31,11 +33,11 @@
>       if (!ecore_file_exists(buf))
>         e_prefix_data_concat_static(buf, "data/applications/restart/.order");
>        }
> -   startup_apps = e_order_new(buf);
> -   if (!startup_apps) return;
> -   start_app_pos = 0;
> +   desktop_cache_update_handler =
> +      ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE,
> +                              _e_startup_event_cb,
> +                              strdup(buf));
>      e_init_undone();
> -   _e_startup();
>   }
>
>   /* local subsystem functions */
> @@ -71,3 +73,18 @@
>   {
>      _e_startup();
>   }
> +
> +static Eina_Bool
> +_e_startup_event_cb(void *data, int ev_type __UNUSED__, void *ev __UNUSED__)
> +{
> +   char *buf;
> +
> +   ecore_event_handler_del(desktop_cache_update_handler);
> +   buf = data;
> +   startup_apps = e_order_new(buf);
> +   if (startup_apps)
> +      start_app_pos = 0;
> +   free(buf);
> +   _e_startup();
> +   return ECORE_CALLBACK_PASS_ON;
> +}
>

Wouldn't ECORE_CALLBACK_CANCEL be better here ?

dh


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to