nikawhite pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e634a7cc86db49fb8a1721776a5fc0174db68875
commit e634a7cc86db49fb8a1721776a5fc0174db68875 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Apr 18 16:46:39 2016 +0300 Edje edit: fix get list of program tagrets. Correct support all types of program actions for constructing list of targets. There are 3 group of actions, that related to targets: - Does not support targets at all. - Support only parts as targets. - ACTION_STOP, that supported parts and other programs as targtes. @fix --- src/lib/edje/edje_edit.c | 66 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 995a403..542b692 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -10153,28 +10153,60 @@ _edje_program_targets_get(Evas_Object *obj, Edje_Program *epr) GET_ED_OR_RETURN(NULL); - //printf("GET TARGETS for program: %s [count: %d]\n", prog, eina_list_count(epr->targets)); EINA_LIST_FOREACH(epr->targets, l, t) { - if (epr->action == EDJE_ACTION_TYPE_STATE_SET) + switch (epr->action) { - /* the target is a part */ - Edje_Real_Part *p = NULL; + /*action types, that does not support targets*/ + case EDJE_ACTION_TYPE_SCRIPT: + case EDJE_ACTION_TYPE_SOUND_SAMPLE: + case EDJE_ACTION_TYPE_SOUND_TONE: + case EDJE_ACTION_TYPE_VIBRATION_SAMPLE: + case EDJE_ACTION_TYPE_PARAM_COPY: + case EDJE_ACTION_TYPE_PARAM_SET: +#ifdef HAVE_EPHYSICS + case EDJE_ACTION_TYPE_PHYSICS_IMPULSE: + case EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE: + case EDJE_ACTION_TYPE_PHYSICS_FORCE: + case EDJE_ACTION_TYPE_PHYSICS_TORQUE: + case EDJE_ACTION_TYPE_PHYSICS_VEL_SET: + case EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET: +#endif + break; - p = ed->table_parts[t->id % ed->table_parts_size]; - if (p && p->part && p->part->name) - targets = eina_list_append(targets, - eina_stringshare_add(p->part->name)); - } - else if (epr->action == EDJE_ACTION_TYPE_ACTION_STOP) - { - /* the target is a program */ - Edje_Program *p; + /* the target is a program */ + case EDJE_ACTION_TYPE_ACTION_STOP: + { + Edje_Program *p = NULL; + + p = ed->collection->patterns.table_programs[t->id % ed->collection->patterns.table_programs_size]; + if (p && p->name) + targets = eina_list_append(targets, + eina_stringshare_add(p->name)); + } + break; - p = ed->collection->patterns.table_programs[t->id % ed->collection->patterns.table_programs_size]; - if (p && p->name) - targets = eina_list_append(targets, - eina_stringshare_add(p->name)); + /* the target is a part */ + case EDJE_ACTION_TYPE_SIGNAL_EMIT: + case EDJE_ACTION_TYPE_STATE_SET: + case EDJE_ACTION_TYPE_DRAG_VAL_SET: + case EDJE_ACTION_TYPE_DRAG_VAL_STEP: + case EDJE_ACTION_TYPE_DRAG_VAL_PAGE: + case EDJE_ACTION_TYPE_FOCUS_SET: + case EDJE_ACTION_TYPE_FOCUS_OBJECT: +#ifdef HAVE_EPHYSICS + case EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR: + case EDJE_ACTION_TYPE_PHYSICS_STOP: + case EDJE_ACTION_TYPE_PHYSICS_ROT_SET: +#endif + { + Edje_Real_Part *p = NULL; + p = ed->table_parts[t->id % ed->table_parts_size]; + if (p && p->part && p->part->name) + targets = eina_list_append(targets, + eina_stringshare_add(p->part->name)); + } + break; } } return targets; --