rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=42e8f229769c699a5cbbbf7b7a1a9566c66c2840

commit 42e8f229769c699a5cbbbf7b7a1a9566c66c2840
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Thu Jul 7 09:23:18 2016 +0300

    editor_part: move external references reset from _part_reset to _part_del
---
 src/bin/editor/editor_part.c | 121 +++++++++++++++++++++++--------------------
 1 file changed, 64 insertions(+), 57 deletions(-)

diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c
index e6a9629..67fbe60 100644
--- a/src/bin/editor/editor_part.c
+++ b/src/bin/editor/editor_part.c
@@ -727,8 +727,8 @@ editor_part_reset(Evas_Object *edit_object, Change *change, 
Eina_Bool apply,
                   const char *part_name)
 {
    Eina_Bool res = true;
-   Eina_List *items, *states, *parts, *l, *l_s;
-   Eina_Stringshare *part, *state, *name, *ref;
+   Eina_List *items, *states, *l;
+   Eina_Stringshare *state, *name;
    double state_val;
 
    assert(edit_object != NULL);
@@ -794,61 +794,6 @@ editor_part_reset(Evas_Object *edit_object, Change 
*change, Eina_Bool apply,
       res = res && editor_part_item_del(edit_object, change, false, apply, 
part_name, name);
    edje_edit_string_list_free(items);
 
-   /* remove external references */
-   parts = edje_edit_parts_list_get(edit_object);
-   EINA_LIST_FOREACH(parts, l, part)
-     {
-        if (part == part_name) continue;
-        states = edje_edit_part_states_list_get(edit_object, part);
-        type = edje_edit_part_type_get(edit_object, part);
-        EINA_LIST_FOREACH(states, l_s, state)
-          {
-             state_name_split(state, &name, &state_val);
-
-             #define RESET_STATE_REF(ATT) \
-             ref = edje_edit_state_ ## ATT ## _get(edit_object, part, name, 
state_val); \
-             if (ref == part_name) \
-               res = res && editor_state_ ## ATT ## _reset(edit_object, 
change, apply, part, name, state_val);
-
-             RESET_STATE_REF(rel1_to_x);
-             RESET_STATE_REF(rel2_to_x);
-             RESET_STATE_REF(rel1_to_y);
-             RESET_STATE_REF(rel2_to_y);
-             if (type == EDJE_PART_TYPE_PROXY)
-               {
-                  RESET_STATE_REF(proxy_source);
-               }
-             else if (type == EDJE_PART_TYPE_TEXT)
-               {
-                  RESET_STATE_REF(text_source);
-                  RESET_STATE_REF(text_text_source);
-               }
-
-             eina_stringshare_del(name);
-          }
-        #define RESET_PART_REF(ATT, REAL_ATT) \
-        ref = edje_edit_part_ ## REAL_ATT ## _get(edit_object, part); \
-        if (ref == part_name) \
-          res = res && editor_part_ ## ATT ## _reset(edit_object, change, 
apply, part);
-
-        RESET_PART_REF(clip_to, clip_to);
-        RESET_PART_REF(drag_confine, drag_confine);
-        RESET_PART_REF(drag_threshold, drag_threshold);
-        RESET_PART_REF(drag_event, drag_event);
-        if (type == EDJE_PART_TYPE_TEXTBLOCK)
-          {
-             RESET_PART_REF(textblock_selection_under, source);
-             RESET_PART_REF(textblock_selection_over, source2);
-             RESET_PART_REF(textblock_cursor_under, source3);
-             RESET_PART_REF(textblock_cursor_over, source4);
-             RESET_PART_REF(textblock_anchors_under, source5);
-             RESET_PART_REF(textblock_anchors_over, source6);
-          }
-        if (type == EDJE_PART_TYPE_GROUP)
-          RESET_PART_REF(group_source, source);
-
-     }
-   edje_edit_string_list_free(parts);
    you_shall_pass_editor_signals(change);
 
    return res;
@@ -942,12 +887,74 @@ _editor_part_del(Evas_Object *edit_object, Change 
*change, Eina_Bool merge __UNU
    Diff *diff;
    Eina_Stringshare *event_info;
    Edje_Part_Type type;
+   Eina_Bool res = true;
+   Eina_List *states, *parts, *l, *l_s;
+   Eina_Stringshare *part, *state, *name, *ref;
+   double state_val;
 
    assert(edit_object != NULL);
 
    event_info = eina_stringshare_add(part_name);
    if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_PART_DELETED, (void *)event_info);
 
+   /* remove external references */
+   you_shall_not_pass_editor_signals(change);
+   parts = edje_edit_parts_list_get(edit_object);
+   EINA_LIST_FOREACH(parts, l, part)
+     {
+        if (part == part_name) continue;
+        states = edje_edit_part_states_list_get(edit_object, part);
+        type = edje_edit_part_type_get(edit_object, part);
+        EINA_LIST_FOREACH(states, l_s, state)
+          {
+             state_name_split(state, &name, &state_val);
+
+             #define RESET_STATE_REF(ATT) \
+             ref = edje_edit_state_ ## ATT ## _get(edit_object, part, name, 
state_val); \
+             if (ref == part_name) \
+             res = res && editor_state_ ## ATT ## _reset(edit_object, change, 
apply, part, name, state_val);
+
+             RESET_STATE_REF(rel1_to_x);
+             RESET_STATE_REF(rel2_to_x);
+             RESET_STATE_REF(rel1_to_y);
+             RESET_STATE_REF(rel2_to_y);
+             if (type == EDJE_PART_TYPE_PROXY)
+               {
+                  RESET_STATE_REF(proxy_source);
+               }
+             else if (type == EDJE_PART_TYPE_TEXT)
+               {
+                  RESET_STATE_REF(text_source);
+                  RESET_STATE_REF(text_text_source);
+               }
+
+             eina_stringshare_del(name);
+          }
+        #define RESET_PART_REF(ATT, REAL_ATT) \
+        ref = edje_edit_part_ ## REAL_ATT ## _get(edit_object, part); \
+        if (ref == part_name) \
+        res = res && editor_part_ ## ATT ## _reset(edit_object, change, apply, 
part);
+
+        RESET_PART_REF(clip_to, clip_to);
+        RESET_PART_REF(drag_confine, drag_confine);
+        RESET_PART_REF(drag_threshold, drag_threshold);
+        RESET_PART_REF(drag_event, drag_event);
+        if (type == EDJE_PART_TYPE_TEXTBLOCK)
+          {
+             RESET_PART_REF(textblock_selection_under, source);
+             RESET_PART_REF(textblock_selection_over, source2);
+             RESET_PART_REF(textblock_cursor_under, source3);
+             RESET_PART_REF(textblock_cursor_over, source4);
+             RESET_PART_REF(textblock_anchors_under, source5);
+             RESET_PART_REF(textblock_anchors_over, source6);
+          }
+        if (type == EDJE_PART_TYPE_GROUP)
+          RESET_PART_REF(group_source, source);
+
+     }
+   edje_edit_string_list_free(parts);
+   you_shall_pass_editor_signals(change);
+
    if (change)
      {
         type = edje_edit_part_type_get(edit_object, part_name);

-- 


Reply via email to