actually I don't know wtf I was thinking with 74438, I was clearly a misguided genius in the code that I removed in this commit; fixes adding new gadgets and also speeds up the process greatly

SVN revision: 74441
This commit is contained in:
Mike Blumenkrantz 2012-07-26 13:00:15 +00:00
parent a9107599de
commit 812abd7c1d
1 changed files with 25 additions and 2 deletions

View File

@ -5216,12 +5216,35 @@ _e_gadcon_provider_populate_idler(void *data __UNUSED__)
EINA_LIST_FOREACH(gadcon_idle_pos ?: gadcons, gadcon_idle_pos, gc)
{
if (ecore_loop_time_get() - loop >= ecore_animator_frametime_get()) goto out;
if (eina_list_data_find(gc->populated_classes, cc)) continue;
if (gc->populate_class.func)
gc->populate_class.func(gc->populate_class.data, gc, cc);
else
e_gadcon_populate_class(gc, cc);
gc->populated_classes = eina_list_append(gc->populated_classes, cc);
if (!eina_list_data_find(gc->populated_classes, cc))
{
gc->populated_classes = eina_list_append(gc->populated_classes, cc);
if (gc->cf)
{
Eina_List *ll, *lll;
E_Config_Gadcon_Client *cf_gcc;
E_Gadcon_Client *gcc;
EINA_LIST_FOREACH_SAFE(gc->cf->clients, ll, lll, cf_gcc)
{
if (!e_util_strcmp(cf_gcc->name, cc->name))
{
Eina_Bool found = EINA_FALSE;
EINA_LIST_FOREACH(gc->clients, ll, gcc)
if (gcc->cf == cf_gcc)
{
found = EINA_TRUE;
break;
}
if (!found)
_e_gadcon_client_populate(gc, cc, cf_gcc);
}
}
}
}
}
}
out: