forked from enlightenment/efl
edje: fix bug when using filter with edje cache turned on.
SVN revision: 65458
This commit is contained in:
parent
c34434dedf
commit
4638a297ef
|
@ -1029,10 +1029,6 @@ static Eina_Bool _edje_glob_callback(Edje_Program *pr, void *dt)
|
||||||
Edje_Real_Part *rp = NULL;
|
Edje_Real_Part *rp = NULL;
|
||||||
Eina_Bool exec = EINA_TRUE;
|
Eina_Bool exec = EINA_TRUE;
|
||||||
|
|
||||||
#ifdef EDJE_PROGRAM_CACHE
|
|
||||||
data->matched++;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (pr->filter.state)
|
if (pr->filter.state)
|
||||||
{
|
{
|
||||||
rp = _edje_real_part_get(data->ed, pr->filter.part ? pr->filter.part : data->source);
|
rp = _edje_real_part_get(data->ed, pr->filter.part ? pr->filter.part : data->source);
|
||||||
|
@ -1040,6 +1036,10 @@ static Eina_Bool _edje_glob_callback(Edje_Program *pr, void *dt)
|
||||||
exec = (rp->chosen_description->state.name == pr->filter.state);
|
exec = (rp->chosen_description->state.name == pr->filter.state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef EDJE_PROGRAM_CACHE
|
||||||
|
data->matched++;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (exec)
|
if (exec)
|
||||||
_edje_program_run(data->ed, pr, 0, data->signal, data->source);
|
_edje_program_run(data->ed, pr, 0, data->signal, data->source);
|
||||||
|
|
||||||
|
@ -1138,6 +1138,19 @@ _edje_emit_handle(Edje *ed, const char *sig, const char *src,
|
||||||
else if ((matches = eina_hash_find(ec->prog_cache.matches, tmps)))
|
else if ((matches = eina_hash_find(ec->prog_cache.matches, tmps)))
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(matches, l, pr)
|
EINA_LIST_FOREACH(matches, l, pr)
|
||||||
|
{
|
||||||
|
Eina_Bool exec = EINA_TRUE;
|
||||||
|
|
||||||
|
if (pr->filter.state)
|
||||||
|
{
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
rp = _edje_real_part_get(ed, pr->filter.part ? pr->filter.part : src);
|
||||||
|
if (rp)
|
||||||
|
exec = (rp->chosen_description->state.name == pr->filter.state);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (exec)
|
||||||
{
|
{
|
||||||
_edje_program_run(ed, pr, 0, sig, src);
|
_edje_program_run(ed, pr, 0, sig, src);
|
||||||
if (_edje_block_break(ed))
|
if (_edje_block_break(ed))
|
||||||
|
@ -1145,6 +1158,7 @@ _edje_emit_handle(Edje *ed, const char *sig, const char *src,
|
||||||
goto break_prog;
|
goto break_prog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
done = 1;
|
done = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue