furrymyad pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9450c1ec7b0ec46d224008b1f51629d1e657f19d

commit 9450c1ec7b0ec46d224008b1f51629d1e657f19d
Author: Vitalii Vorobiov <[email protected]>
Date:   Tue Oct 11 14:54:24 2016 +0300

    edje_edit: proper work with part id's on part restack and del for map fields
    
    @fix
---
 src/lib/edje/edje_edit.c | 35 ++++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 65e490c..16a0bbb 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -700,6 +700,22 @@ _edje_part_description_id_switch(int type, 
Edje_Part_Description_Common *c, int
         else if (t->text.id_text_source == id2)
           t->text.id_text_source = id1;
      }
+
+   if (c->map.id_persp == id1)
+     c->map.id_persp = id2;
+   else if (c->map.id_persp == id2)
+     c->map.id_persp = id1;
+
+   if (c->map.id_light == id1)
+     c->map.id_light = id2;
+   else if (c->map.id_light == id2)
+     c->map.id_light = id1;
+
+
+   if (c->map.rot.id_center == id1)
+     c->map.rot.id_center = id2;
+   else if (c->map.rot.id_center == id2)
+     c->map.rot.id_center = id1;
 }
 
 static void
@@ -3291,7 +3307,7 @@ edje_edit_part_del(Evas_Object *obj, const char *part)
    Edje_Part *ep;
    unsigned int k;
    unsigned int id;
-   unsigned short i;
+   unsigned short i, j;
 
    GET_EED_OR_RETURN(EINA_FALSE);
    GET_RP_OR_RETURN(EINA_FALSE);
@@ -3332,6 +3348,23 @@ edje_edit_part_del(Evas_Object *obj, const char *part)
              else if (i > id)
                real->part->dragable.event_id--;
           }
+
+        if (real->part->default_desc->map.id_persp == rp->part->id)
+          real->part->default_desc->map.id_persp = -1;
+        if (real->part->default_desc->map.id_light == rp->part->id)
+          real->part->default_desc->map.id_light = -1;
+        if (real->part->default_desc->map.rot.id_center == rp->part->id)
+          real->part->default_desc->map.rot.id_center = -1;
+
+        for (j = 0; j < real->part->other.desc_count; ++j)
+          {
+             if (real->part->other.desc[i]->map.id_persp == rp->part->id)
+               real->part->other.desc[i]->map.id_persp = -1;
+             if (real->part->other.desc[i]->map.id_light == rp->part->id)
+               real->part->other.desc[i]->map.id_light = -1;
+             if (real->part->other.desc[i]->map.rot.id_center == rp->part->id)
+               real->part->other.desc[i]->map.rot.id_center = -1;
+          }
      }
 
    /* Unlink all the parts and descriptions that refer to id */

-- 


Reply via email to