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 SVN revision: 77135
This commit is contained in:
parent
383586bd43
commit
8257c70883
|
@ -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 @@ wizard_page_init(E_Wizard_Page *pg __UNUSED__)
|
|||
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 @@ wizard_page_show(E_Wizard_Page *pg __UNUSED__)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 @@ wizard_page_init(E_Wizard_Page *pg __UNUSED__)
|
|||
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 @@ wizard_page_show(E_Wizard_Page *pg __UNUSED__)
|
|||
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 @@ wizard_page_show(E_Wizard_Page *pg __UNUSED__)
|
|||
}
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue