forked from enlightenment/enlightenment
wait till after module init is over before drawing gadgets so we can draw them all at once, also don't need to bind to frametime anymore with this
SVN revision: 75067
This commit is contained in:
parent
3c2e02bf8b
commit
e3e11778fa
|
@ -189,6 +189,8 @@ static Ecore_Idler *populate_idler = NULL;
|
|||
static Eina_List *custom_populate_requests = NULL;
|
||||
static Ecore_Idler *custom_populate_idler = NULL;
|
||||
static Eina_List *gadcon_locations = NULL;
|
||||
static Ecore_Event_Handler *_module_init_end_handler = NULL;
|
||||
static Eina_Bool _modules_loaded = EINA_FALSE;
|
||||
|
||||
/* This is the gadcon client which is currently dragged */
|
||||
static E_Gadcon_Client *drag_gcc = NULL;
|
||||
|
@ -201,10 +203,18 @@ _eina_list_free(Eina_List *l)
|
|||
eina_list_free(l);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_module_init_end_cb(void *d __UNUSED__, int type __UNUSED__, void *ev __UNUSED__)
|
||||
{
|
||||
_modules_loaded = EINA_TRUE;
|
||||
return ECORE_CALLBACK_RENEW;
|
||||
}
|
||||
|
||||
/* externally accessible functions */
|
||||
EINTERN int
|
||||
e_gadcon_init(void)
|
||||
{
|
||||
_module_init_end_handler = ecore_event_handler_add(E_EVENT_MODULE_INIT_END, _module_init_end_cb, NULL);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -222,6 +232,10 @@ e_gadcon_shutdown(void)
|
|||
ecore_idler_del(custom_populate_idler);
|
||||
custom_populate_idler = NULL;
|
||||
}
|
||||
_modules_loaded = EINA_FALSE;
|
||||
if (_module_init_end_handler)
|
||||
ecore_event_handler_del(_module_init_end_handler);
|
||||
_module_init_end_handler = NULL;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -5209,9 +5223,8 @@ _e_gadcon_custom_populate_idler(void *data __UNUSED__)
|
|||
E_Config_Gadcon_Client *cf_gcc;
|
||||
const Eina_List *l;
|
||||
E_Gadcon *gc;
|
||||
double loop;
|
||||
|
||||
loop = ecore_loop_time_get();
|
||||
if (!_modules_loaded) return EINA_TRUE;
|
||||
#ifndef E17_RELEASE_BUILD
|
||||
static Eina_Bool first = EINA_TRUE;
|
||||
if (first)
|
||||
|
@ -5219,18 +5232,12 @@ _e_gadcon_custom_populate_idler(void *data __UNUSED__)
|
|||
#endif
|
||||
EINA_LIST_FREE(custom_populate_requests, gc)
|
||||
{
|
||||
if (ecore_time_get() - loop >= ecore_animator_frametime_get()) break;
|
||||
if (!gc->cf) continue;
|
||||
e_gadcon_layout_freeze(gc->o_container);
|
||||
EINA_LIST_FOREACH(gc->cf->clients, l, cf_gcc)
|
||||
{
|
||||
cc = eina_hash_find(providers, cf_gcc->name);
|
||||
if (!cc) continue;
|
||||
if (ecore_time_get() - loop >= ecore_animator_frametime_get())
|
||||
{
|
||||
e_gadcon_layout_thaw(gc->o_container);
|
||||
goto out;
|
||||
}
|
||||
if (gc->populate_class.func)
|
||||
gc->populate_class.func(gc->populate_class.data, gc, cc);
|
||||
else
|
||||
|
@ -5238,7 +5245,7 @@ _e_gadcon_custom_populate_idler(void *data __UNUSED__)
|
|||
}
|
||||
e_gadcon_layout_thaw(gc->o_container);
|
||||
}
|
||||
out:
|
||||
|
||||
#ifndef E17_RELEASE_BUILD
|
||||
if (first)
|
||||
e_main_ts("gadcon custom populate idler end");
|
||||
|
@ -5260,10 +5267,9 @@ _e_gadcon_provider_populate_idler(void *data __UNUSED__)
|
|||
E_Gadcon_Client_Class *cc;
|
||||
Eina_List *l;
|
||||
E_Gadcon *gc;
|
||||
double loop;
|
||||
Eina_Bool more = EINA_FALSE;
|
||||
|
||||
loop = ecore_loop_time_get();
|
||||
if (!_modules_loaded) return EINA_TRUE;
|
||||
|
||||
EINA_LIST_FOREACH(gadcons, l, gc)
|
||||
e_gadcon_layout_freeze(gc->o_container);
|
||||
|
||||
|
@ -5275,11 +5281,6 @@ _e_gadcon_provider_populate_idler(void *data __UNUSED__)
|
|||
EINA_LIST_FOREACH(gadcons, l, gc)
|
||||
EINA_LIST_FREE(gc->populate_requests, cc)
|
||||
{
|
||||
if (ecore_time_get() - loop >= ecore_animator_frametime_get())
|
||||
{
|
||||
more = EINA_TRUE;
|
||||
goto out;
|
||||
}
|
||||
#ifndef E17_RELEASE_BUILD
|
||||
if (first) e_main_ts(cc->name);
|
||||
#endif
|
||||
|
@ -5302,7 +5303,7 @@ _e_gadcon_provider_populate_idler(void *data __UNUSED__)
|
|||
}
|
||||
}
|
||||
}
|
||||
out:
|
||||
|
||||
#ifndef E17_RELEASE_BUILD
|
||||
if (first)
|
||||
e_main_ts("gadcon populate idler end");
|
||||
|
@ -5310,15 +5311,11 @@ out:
|
|||
EINA_LIST_FOREACH(gadcons, l, gc)
|
||||
e_gadcon_layout_thaw(gc->o_container);
|
||||
|
||||
if (!more)
|
||||
{
|
||||
populate_idler = NULL;
|
||||
populate_idler = NULL;
|
||||
#ifndef E17_RELEASE_BUILD
|
||||
first = EINA_FALSE;
|
||||
first = EINA_FALSE;
|
||||
#endif
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
return ECORE_CALLBACK_RENEW;
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue