rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=51d8d9fb1db9e35413d6d48f3e03e0ceb53e04d0

commit 51d8d9fb1db9e35413d6d48f3e03e0ceb53e04d0
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Thu Dec 17 12:07:17 2015 +0200

    editor: save part_item position to change on deleting part_item
---
 src/bin/editor/editor_part.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c
index 89a2c4d..ff51486 100644
--- a/src/bin/editor/editor_part.c
+++ b/src/bin/editor/editor_part.c
@@ -406,6 +406,7 @@ editor_part_cursor_mode_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    return true;
 }
 
+static Eina_Bool _part_item_restacking;
 Eina_Bool
 editor_part_item_reset(Evas_Object *edit_object, Change *change, Eina_Bool 
merge __UNUSED__,
                        const char *part_name, const char *item_name)
@@ -419,6 +420,8 @@ editor_part_item_reset(Evas_Object *edit_object, Change 
*change, Eina_Bool merge
 
    assert((type == EDJE_PART_TYPE_TABLE) || (type == EDJE_PART_TYPE_BOX));
 
+   you_shall_not_pass_editor_signals(change);
+
    if (type == EDJE_PART_TYPE_TABLE)
      {
         res = res && editor_part_item_span_col_reset(edit_object, change, 
part_name, item_name);
@@ -443,6 +446,10 @@ editor_part_item_reset(Evas_Object *edit_object, Change 
*change, Eina_Bool merge
    res = res && editor_part_item_weight_x_reset(edit_object, change, 
part_name, item_name);
    res = res && editor_part_item_weight_y_reset(edit_object, change, 
part_name, item_name);
    res = res && editor_part_item_padding_reset(edit_object, change, part_name, 
item_name);
+   if (!_part_item_restacking)
+     res = res && editor_part_item_restack(edit_object, change, false, 
part_name, item_name, NULL);
+
+   you_shall_pass_editor_signals(change);
 
    return res;
 }
@@ -598,7 +605,7 @@ editor_part_reset(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UN
 
    /* removing part items */
    items = edje_edit_part_items_list_get(edit_object, part_name);
-   EINA_LIST_FOREACH(items, l, name)
+   EINA_LIST_REVERSE_FOREACH(items, l, name)
       res = res && editor_part_item_del(edit_object, change, false, part_name, 
name);
    edje_edit_string_list_free(items);
 
@@ -784,6 +791,7 @@ editor_part_item_restack(Evas_Object *edit_object, Change 
*change, Eina_Bool mer
    virtual_change = change_add(NULL);
    you_shall_not_pass_editor_signals(NULL);
 
+   _part_item_restacking = true;
    if (relative_part_item)
      {
         relative_part_item_name = eina_stringshare_add(relative_part_item);
@@ -814,6 +822,8 @@ editor_part_item_restack(Evas_Object *edit_object, Change 
*change, Eina_Bool mer
              assert(res);
           }
      }
+
+   _part_item_restacking = false;
    you_shall_pass_editor_signals(NULL);
    change_free(virtual_change);
 

-- 


Reply via email to