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;

-- 


Reply via email to