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); --