e_startup: check for efreet errors
for the case efreet does not come up with any event, give a error to the user
This commit is contained in:
parent
3051df7fee
commit
5820015f77
|
@ -9,17 +9,19 @@
|
||||||
static void _e_startup(void);
|
static void _e_startup(void);
|
||||||
static void _e_startup_next_cb(void *data);
|
static void _e_startup_next_cb(void *data);
|
||||||
static Eina_Bool _e_startup_event_cb(void *data, int ev_type, void *ev);
|
static Eina_Bool _e_startup_event_cb(void *data, int ev_type, void *ev);
|
||||||
|
static Eina_Bool _e_startup_time_exceeded(void *data);
|
||||||
|
|
||||||
/* local subsystem globals */
|
/* local subsystem globals */
|
||||||
static E_Order *startup_apps = NULL;
|
static E_Order *startup_apps = NULL;
|
||||||
static int start_app_pos = -1;
|
static int start_app_pos = -1;
|
||||||
static Ecore_Event_Handler *desktop_cache_update_handler = NULL;
|
static Ecore_Event_Handler *desktop_cache_update_handler = NULL;
|
||||||
|
static Ecore_Timer *timer;
|
||||||
static Eina_Bool desktop_cache_update = EINA_FALSE;
|
static Eina_Bool desktop_cache_update = EINA_FALSE;
|
||||||
static Eina_Bool started = EINA_FALSE;
|
static Eina_Bool started = EINA_FALSE;
|
||||||
|
|
||||||
/* externally accessible functions */
|
/* externally accessible functions */
|
||||||
|
|
||||||
|
|
||||||
E_API void
|
E_API void
|
||||||
e_startup_mode_set(E_Startup_Mode mode)
|
e_startup_mode_set(E_Startup_Mode mode)
|
||||||
{
|
{
|
||||||
|
@ -41,6 +43,7 @@ e_startup_mode_set(E_Startup_Mode mode)
|
||||||
ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_BUILD,
|
ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_BUILD,
|
||||||
_e_startup_event_cb,
|
_e_startup_event_cb,
|
||||||
strdup(buf));
|
strdup(buf));
|
||||||
|
timer = ecore_timer_add(5.0, _e_startup_time_exceeded, NULL);
|
||||||
e_init_undone();
|
e_init_undone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,6 +113,9 @@ _e_startup_event_cb(void *data, int ev_type EINA_UNUSED, void *ev)
|
||||||
char *buf;
|
char *buf;
|
||||||
Efreet_Event_Cache_Update *e;
|
Efreet_Event_Cache_Update *e;
|
||||||
|
|
||||||
|
ecore_timer_del(timer);
|
||||||
|
timer = NULL;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
if ((e) && (e->error))
|
if ((e) && (e->error))
|
||||||
{
|
{
|
||||||
|
@ -129,3 +135,11 @@ _e_startup_event_cb(void *data, int ev_type EINA_UNUSED, void *ev)
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_e_startup_time_exceeded(void *data EINA_UNUSED)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "E: efreet didnt notify about cache update\n");
|
||||||
|
_e_startup_error_dialog("E: Efreet did not update cache. "
|
||||||
|
"Please check your Efreet setup");
|
||||||
|
return ECORE_CALLBACK_CANCEL;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue