On Fri, 28 Sep 2012 17:52:00 +0200 Sebastian Dransfeld <[email protected]> said:
> There is an event which is always triggered when cache is rebuilt. See e_init > (). are u sure i want to look there? zero efreet cde/event handling there. :) i have the timeout(s) in case something goes wrong and either the event came in before the handler was registered OR it takes too long (hangs) so we dont stay stuck at least. defensive programming :) just assuming the world falls apart - r part of it anyway :) > S. > > Den 27. sep. 2012 kl. 10:40 skrev "Enlightenment SVN" > <[email protected]>: > > > Log: > > 1. wait for initial efreet desktop update before going ot first page > > 2. wait again after new desktops instaleld and update comes in before > > advancing > > > > > > > > Author: raster > > Date: 2012-09-27 01:40:24 -0700 (Thu, 27 Sep 2012) > > New Revision: 77135 > > Trac: http://trac.enlightenment.org/e/changeset/77135 > > > > Modified: > > trunk/e/src/modules/wizard/page_000.c > > trunk/e/src/modules/wizard/page_040.c > > > > Modified: trunk/e/src/modules/wizard/page_000.c > > =================================================================== > > --- trunk/e/src/modules/wizard/page_000.c 2012-09-27 08:23:53 UTC (rev > > 77134) +++ trunk/e/src/modules/wizard/page_000.c 2012-09-27 08:40:24 UTC > > (rev 77135) @@ -3,6 +3,9 @@ > > #include "e.h" > > #include "e_mod_main.h" > > > > +static Ecore_Event_Handler *_update_handler = NULL; > > +static Ecore_Timer *_next_timer = NULL; > > + > > EAPI int > > wizard_page_init(E_Wizard_Page *pg __UNUSED__) > > { > > @@ -12,17 +15,30 @@ > > EAPI int > > wizard_page_shutdown(E_Wizard_Page *pg __UNUSED__) > > { > > + if (_update_handler) ecore_event_handler_del(_update_handler); > > + _update_handler = NULL; > > return 1; > > } > > > > static Eina_Bool > > _next_page(void *data __UNUSED__) > > { > > + _next_timer = NULL; > > + if (_update_handler) ecore_event_handler_del(_update_handler); > > + _update_handler = NULL; > > e_wizard_button_next_enable_set(1); > > e_wizard_next(); > > return ECORE_CALLBACK_CANCEL; > > } > > > > +static Eina_Bool > > +_cb_desktops_update(void *data __UNUSED__, int ev_type __UNUSED__, void > > *ev __UNUSED__) +{ > > + if (_next_timer) ecore_timer_del(_next_timer); > > + _next_timer = ecore_timer_add(2.0, _next_page, NULL); > > + return ECORE_CALLBACK_PASS_ON; > > +} > > + > > EAPI int > > wizard_page_show(E_Wizard_Page *pg __UNUSED__) > > { > > @@ -34,7 +50,12 @@ > > e_theme_edje_object_set(o, "base/theme/wizard", "e/wizard/firstpage"); > > e_wizard_page_show(o); > > > > - ecore_timer_add(2.0, _next_page, NULL); > > + _update_handler = > > + ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, > > + _cb_desktops_update, NULL); > > + > > + /* advance in 15 sec anyway if no efreet update comes */ > > + _next_timer = ecore_timer_add(15.0, _next_page, NULL); > > return 1; > > } > > > > > > Modified: trunk/e/src/modules/wizard/page_040.c > > =================================================================== > > --- trunk/e/src/modules/wizard/page_040.c 2012-09-27 08:23:53 UTC (rev > > 77134) +++ trunk/e/src/modules/wizard/page_040.c 2012-09-27 08:40:24 UTC > > (rev 77135) @@ -2,6 +2,9 @@ > > #include "e.h" > > #include "e_mod_main.h" > > > > +static Ecore_Event_Handler *_update_handler = NULL; > > +static Ecore_Timer *_next_timer = NULL; > > + > > EAPI int > > wizard_page_init(E_Wizard_Page *pg __UNUSED__) > > { > > @@ -11,9 +14,30 @@ > > EAPI int > > wizard_page_shutdown(E_Wizard_Page *pg __UNUSED__) > > { > > + if (_update_handler) ecore_event_handler_del(_update_handler); > > + _update_handler = NULL; > > return 1; > > } > > > > +static Eina_Bool > > +_next_page(void *data __UNUSED__) > > +{ > > + _next_timer = NULL; > > + if (_update_handler) ecore_event_handler_del(_update_handler); > > + _update_handler = NULL; > > + e_wizard_button_next_enable_set(1); > > + e_wizard_next(); > > + return ECORE_CALLBACK_CANCEL; > > +} > > + > > +static Eina_Bool > > +_cb_desktops_update(void *data __UNUSED__, int ev_type __UNUSED__, void > > *ev __UNUSED__) +{ > > + if (_next_timer) ecore_timer_del(_next_timer); > > + _next_timer = ecore_timer_add(1.0, _next_page, NULL); > > + return ECORE_CALLBACK_PASS_ON; > > +} > > + > > EAPI int > > wizard_page_show(E_Wizard_Page *pg __UNUSED__) > > { > > @@ -25,6 +49,14 @@ > > snprintf(buf, sizeof(buf), "%s/extra_desktops", e_wizard_dir_get()); > > extra_desks = ecore_file_ls(buf); > > if (!extra_desks) return 0; > > + > > + _update_handler = > > + ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, > > + _cb_desktops_update, NULL); > > + > > + /* advance in 15 sec anyway if no efreet update comes */ > > + _next_timer = ecore_timer_add(15.0, _next_page, NULL); > > + > > EINA_LIST_FREE(extra_desks, file) > > { > > snprintf(buf, sizeof(buf), "%s/extra_desktops/%s", > > @@ -80,7 +112,7 @@ > > } > > free(file); > > } > > - return 0; /* 1 == show ui, and wait for user, 0 == just continue */ > > + return 1; /* 1 == show ui, and wait for user, 0 == just continue */ > > } > > > > EAPI int > > > > > > ------------------------------------------------------------------------------ > > Everyone hates slow websites. So do we. > > Make your web apps faster with AppDynamics > > Download AppDynamics Lite for free today: > > http://ad.doubleclick.net/clk;258768047;13503038;j? > > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > > _______________________________________________ > > enlightenment-svn mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > ------------------------------------------------------------------------------ > Got visibility? > Most devs has no idea what their production app looks like. > Find out how fast your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219671;13503038;y? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
