edje: prevent filter from matching during a program run.

SVN revision: 67495
This commit is contained in:
Cedric BAIL 2012-01-24 14:48:51 +00:00
parent 93a7b884a9
commit 814d9bfb29
3 changed files with 14 additions and 5 deletions

View File

@ -299,3 +299,7 @@
2012-01-23 Cedric Bail
* Fix overridding group in edje_cc by fixing with the right index.
2012-01-24 Cedric Bail
* Filter should only be valid once all program affecting there part are done.

View File

@ -66,7 +66,7 @@ _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T
break;
case EDJE_TWEEN_MODE_DECELERATE:
npos = FROM_DOUBLE(ecore_animator_pos_map(TO_DOUBLE(pos),
ECORE_POS_MAP_DECELERATE,
ECORE_POS_MAP_DECELERATE,
0.0, 0.0));
break;
case EDJE_TWEEN_MODE_LINEAR:
@ -564,7 +564,7 @@ _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, doubl
_edje_real_part_rel_to_apply(ed, ep, ep->param2);
if (ep->description_pos != 0.0)
if (ep->description_pos > FROM_DOUBLE(0.0))
ep->chosen_description = epd2;
}

View File

@ -531,7 +531,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
}
if (rp->program)
_edje_program_end(ed, rp->program);
_edje_program_end(ed, rp->program);
_edje_part_description_apply(ed, rp,
rp->param1.description->state.name,
rp->param1.description->state.value,
@ -570,7 +570,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
if (rp)
{
if (rp->program)
_edje_program_end(ed, rp->program);
_edje_program_end(ed, rp->program);
_edje_part_description_apply(ed, rp,
pr->state,
pr->value,
@ -1170,7 +1170,12 @@ _edje_emit_handle(Edje *ed, const char *sig, const char *src,
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 (rp->program)
exec = EINA_FALSE;
else
exec = (rp->chosen_description->state.name == pr->filter.state);
}
}
if (exec)