rimmed pushed a commit to branch master.

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

commit a642ea6e50029cc1a78cc6b5fabd5598c642ac68
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Thu Sep 22 19:23:58 2016 +0300

    resource_manager2: do not call editor changed on dependency clean up
    
    for example while deleting color class, on call editor_colorclass_set into 
NULL
    it shouldn't call colorclass name changed
    
    @fix
---
 src/bin/editor/editor.h                           |  1 +
 src/bin/editor/editor_group.c                     | 10 ++++++
 src/bin/editor/editor_macro.h                     | 38 +++++++++++++++++++++++
 src/bin/editor/editor_part.c                      | 28 +++++++++++++++++
 src/bin/editor/editor_program.c                   | 30 ++++++++++++++++++
 src/bin/editor/editor_states.c                    | 24 ++++++++++++++
 src/bin/editor/editor_text.c                      |  4 +++
 src/bin/resource_manager/resource_manager_react.c |  6 ++--
 8 files changed, 139 insertions(+), 2 deletions(-)

diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h
index 2aa511d..5734f37 100644
--- a/src/bin/editor/editor.h
+++ b/src/bin/editor/editor.h
@@ -231,6 +231,7 @@ typedef enum {
 
 typedef struct {
    RM_Attribute attribute;
+   Evas_Object *edit_object;
    Eina_Stringshare *group_name;
    Eina_Stringshare *part_name;
    Eina_Stringshare *item_name;
diff --git a/src/bin/editor/editor_group.c b/src/bin/editor/editor_group.c
index 9e599e5..7dce32d 100644
--- a/src/bin/editor/editor_group.c
+++ b/src/bin/editor/editor_group.c
@@ -130,6 +130,8 @@ editor_group_max_## VAL ##_set(Evas_Object *obj, Change 
*change, Eina_Bool merge
    int min_value; \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = obj; \
+ \
    send.attribute = RM_ATTRIBUTE_GROUP_MAX_##VAL_CAPS; \
  \
    assert(obj != NULL); \
@@ -176,6 +178,8 @@ editor_group_min_## VAL ##_set(Evas_Object *obj, Change 
*change, Eina_Bool merge
    int max_value; \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = obj; \
+ \
    send.attribute = RM_ATTRIBUTE_GROUP_MIN_##VAL_CAPS; \
  \
    assert(obj != NULL); \
@@ -219,6 +223,8 @@ editor_group_name_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge,
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_GROUP_NAME;
    assert(edit_object != NULL);
    assert(new_val != NULL);
@@ -253,6 +259,8 @@ editor_group_data_value_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_GROUP_DATA_VALUE;
    assert(edit_object != NULL);
    assert(item_name != NULL);
@@ -290,6 +298,8 @@ editor_group_data_name_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
    Diff *diff;
    Rename ren;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    assert(edit_object != NULL);
    assert(item_name != NULL);
    assert(new_val != NULL);
diff --git a/src/bin/editor/editor_macro.h b/src/bin/editor/editor_macro.h
index 537d756..3718c4f 100644
--- a/src/bin/editor/editor_macro.h
+++ b/src/bin/editor/editor_macro.h
@@ -24,6 +24,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -66,6 +68,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -108,6 +112,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
    assert(state_name != NULL); \
@@ -159,6 +165,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
    assert(state_name != NULL); \
@@ -212,6 +220,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    Diff *diff = NULL; \
    Eina_Stringshare *old_value = edje_edit_state_## FUNC ##_get(edit_object, 
part_name, state_name, state_val); \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    send.part_name = eina_stringshare_add(part_name); \
    send.state_name = eina_stringshare_add(state_name); \
@@ -286,6 +296,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    Diff *diff; \
    int o4, o5, o6, o7; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -334,6 +346,8 @@ editor_state_## FUNC ##_## NUMBER ##_set(Evas_Object 
*edit_object, Change *chang
    Diff *diff; \
    int o4, o5, o6, o7; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE ##_## NUMBER; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -382,6 +396,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -424,6 +440,8 @@ editor_part_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -460,6 +478,8 @@ editor_part_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -496,6 +516,8 @@ editor_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge,
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(name != NULL); \
@@ -538,6 +560,8 @@ editor_part_item_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_B
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -578,6 +602,8 @@ editor_part_item_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_B
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -618,6 +644,8 @@ editor_part_item_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_B
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -658,6 +686,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -700,6 +730,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -742,6 +774,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -784,6 +818,8 @@ editor_program_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Boo
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(program != NULL); \
@@ -820,6 +856,8 @@ editor_program_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Boo
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    assert(edit_object != NULL); \
    assert(program != NULL); \
    Eina_Stringshare *old_value = edje_edit_program_## FUNC ##_get(edit_object, 
program); \
diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c
index fee6880..28f3bff 100644
--- a/src/bin/editor/editor_part.c
+++ b/src/bin/editor/editor_part.c
@@ -30,6 +30,8 @@ editor_part_text_effect_set(Evas_Object *edit_object, Change 
*change, Eina_Bool
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_TEXT_EFFECT;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -67,6 +69,8 @@ editor_part_text_shadow_direction_set(Evas_Object 
*edit_object, Change *change,
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -104,6 +108,8 @@ editor_part_ignore_flags_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_IGNORE_FLAGS;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -164,6 +170,8 @@ editor_part_name_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge,
    Diff *diff;
    Rename ren;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_NAME;
    send.old_value = eina_stringshare_add(name);
    send.value = eina_stringshare_add(new_val);
@@ -210,6 +218,8 @@ editor_part_item_aspect_mode_set(Evas_Object *edit_object, 
Change *change, Eina_
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_ITEM_ASPECT_MODE;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -270,6 +280,8 @@ editor_part_item_source_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    assert(edit_object != NULL);
    assert(part_name != NULL);
    assert(item_name != NULL);
@@ -321,6 +333,8 @@ editor_part_item_padding_left_set(Evas_Object *edit_object, 
Change *change, Eina
    Diff *diff;
    int o3, o4, o5, o6;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_ITEM_PADDING_LEFT;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -361,6 +375,8 @@ editor_part_item_padding_right_set(Evas_Object 
*edit_object, Change *change, Ein
    Diff *diff;
    int o3, o4, o5, o6;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_ITEM_PADDING_RIGHT;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -401,6 +417,8 @@ editor_part_item_padding_top_set(Evas_Object *edit_object, 
Change *change, Eina_
    Diff *diff;
    int o3, o4, o5, o6;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_ITEM_PADDING_TOP;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -441,6 +459,8 @@ editor_part_item_padding_bottom_set(Evas_Object 
*edit_object, Change *change, Ei
    Diff *diff;
    int o3, o4, o5, o6;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_ITEM_PADDING_BOTTOM;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -482,6 +502,8 @@ editor_part_select_mode_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_SELECT_MODE;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -517,6 +539,8 @@ editor_part_entry_mode_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_ENTRY_MODE;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -552,6 +576,8 @@ editor_part_pointer_mode_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_POINTER_MODE;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -587,6 +613,8 @@ editor_part_cursor_mode_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PART_CURSOR_MODE;
    assert(edit_object != NULL);
    assert(part_name != NULL);
diff --git a/src/bin/editor/editor_program.c b/src/bin/editor/editor_program.c
index ab1109e..edd6368 100644
--- a/src/bin/editor/editor_program.c
+++ b/src/bin/editor/editor_program.c
@@ -52,6 +52,8 @@ editor_program_transition_type_set(Evas_Object *edit_object, 
Change *change, Ein
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TRANSITION_TYPE;
 
    assert(edit_object != NULL);
@@ -93,6 +95,8 @@ editor_program_transition_from_current_set(Evas_Object 
*edit_object, Change *cha
    Diff *diff;
    Edje_Tween_Mode mode;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TRANSITION_FROM_CURRENT;
 
    assert(edit_object != NULL);
@@ -133,6 +137,8 @@ editor_program_channel_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_CHANNEL;
    assert(edit_object != NULL);
    assert(program != NULL);
@@ -194,6 +200,8 @@ editor_program_transition_factor_set(Evas_Object 
*edit_object, Change *change, E
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TRANSITION_FACTOR;
    assert(edit_object != NULL);
    assert(program != NULL);
@@ -256,6 +264,8 @@ editor_program_transition_gradient_set(Evas_Object 
*edit_object, Change *change,
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TRANSITION_GRADIENT;
    assert(edit_object != NULL);
    assert(program != NULL);
@@ -308,6 +318,8 @@ editor_program_transition_decay_set(Evas_Object 
*edit_object, Change *change, Ei
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TRANSITION_DECAY;
    assert(edit_object != NULL);
    assert(program != NULL);
@@ -360,6 +372,8 @@ editor_program_transition_bounces_set(Evas_Object 
*edit_object, Change *change,
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TRANSITION_BOUNCES;
    assert(edit_object != NULL);
    assert(program != NULL);
@@ -411,6 +425,8 @@ editor_program_transition_swings_set(Evas_Object 
*edit_object, Change *change, E
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TRANSITION_SWINGS;
    assert(edit_object != NULL);
    assert(program != NULL);
@@ -463,6 +479,8 @@ editor_program_transition_bezier_## VAL ##_set(Evas_Object 
*edit_object, Change
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(program != NULL); \
@@ -523,6 +541,8 @@ editor_program_emit_signal_set(Evas_Object *edit_object, 
Change *change, Eina_Bo
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_EMIT_SIGNAL;
    assert(edit_object != NULL);
    assert(program != NULL);
@@ -562,6 +582,8 @@ editor_program_name_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merg
    Diff *diff;
    Rename ren;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_NAME;
    assert(edit_object != NULL);
    assert(name != NULL);
@@ -603,6 +625,8 @@ editor_program_target_add(Evas_Object *edit_object, Change 
*change, Eina_Bool me
    assert(program_name != NULL);
    assert(target != NULL);
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_PROGRAM_TARGET;
    send.program_name = eina_stringshare_add(program_name);
    send.value = eina_stringshare_add(target);
@@ -641,6 +665,8 @@ editor_program_target_del(Evas_Object *edit_object, Change 
*change, Eina_Bool me
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    assert(edit_object != NULL);
    assert(program_name != NULL);
    send.attribute = RM_ATTRIBUTE_PROGRAM_TARGET;
@@ -681,6 +707,8 @@ editor_program_after_add(Evas_Object *edit_object, Change 
*change, Eina_Bool mer
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    assert(edit_object != NULL);
    assert(program_name != NULL);
    assert(after != NULL);
@@ -722,6 +750,8 @@ editor_program_after_del(Evas_Object *edit_object, Change 
*change, Eina_Bool mer
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    assert(edit_object != NULL);
    assert(program_name != NULL);
    send.attribute = RM_ATTRIBUTE_PROGRAM_AFTER;
diff --git a/src/bin/editor/editor_states.c b/src/bin/editor/editor_states.c
index dfec2f7..5473746 100644
--- a/src/bin/editor/editor_states.c
+++ b/src/bin/editor/editor_states.c
@@ -62,6 +62,8 @@ editor_state_max_## VAL ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bo
    int min_value; \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE_STATE_MAX_##VAL_CAPS; \
  \
    assert(edit_object != NULL); \
@@ -114,6 +116,8 @@ editor_state_min_## VAL ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bo
    int max_value; \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE_STATE_MIN_##VAL_CAPS; \
  \
    assert(edit_object != NULL); \
@@ -164,6 +168,8 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
 { \
    Diff *diff; \
    Editor_Attribute_Change send; \
+   send.edit_object = edit_object; \
+ \
    send.attribute = RM_ATTRIBUTE; \
    assert(edit_object != NULL); \
    assert(part_name != NULL); \
@@ -233,6 +239,8 @@ editor_state_map_rotation_x_set(Evas_Object *edit_object, 
Change *change, Eina_B
    Diff *diff;
    double o4, o5, o6;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_MAP_ROTATION_X;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -274,6 +282,8 @@ editor_state_map_rotation_y_set(Evas_Object *edit_object, 
Change *change, Eina_B
    Diff *diff;
    double o4, o5, o6;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_MAP_ROTATION_Y;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -315,6 +325,8 @@ editor_state_map_rotation_z_set(Evas_Object *edit_object, 
Change *change, Eina_B
    Diff *diff;
    double o4, o5, o6;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_MAP_ROTATION_Z;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -376,6 +388,8 @@ editor_state_image_border_left_set(Evas_Object 
*edit_object, Change *change, Ein
    Diff *diff;
    int o4, o5, o6, o7;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_IMAGE_BORDER_LEFT;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -418,6 +432,8 @@ editor_state_image_border_right_set(Evas_Object 
*edit_object, Change *change, Ei
    Diff *diff;
    int o4, o5, o6, o7;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_IMAGE_BORDER_RIGHT;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -460,6 +476,8 @@ editor_state_image_border_top_set(Evas_Object *edit_object, 
Change *change, Eina
    Diff *diff;
    int o4, o5, o6, o7;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_IMAGE_BORDER_TOP;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -502,6 +520,8 @@ editor_state_image_border_bottom_set(Evas_Object 
*edit_object, Change *change, E
    Diff *diff;
    int o4, o5, o6, o7;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_IMAGE_BORDER_BOTTOM;
    assert(edit_object != NULL);
    assert(part_name != NULL);
@@ -554,6 +574,8 @@ editor_state_tween_add(Evas_Object *edit_object, Change 
*change, Eina_Bool merge
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    assert(edit_object != NULL);
    assert(part_name != NULL);
    assert(state_name != NULL);
@@ -602,6 +624,8 @@ editor_state_tween_del(Evas_Object *edit_object, Change 
*change, Eina_Bool merge
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    assert(edit_object != NULL);
    assert(part_name != NULL);
    assert(state_name != NULL);
diff --git a/src/bin/editor/editor_text.c b/src/bin/editor/editor_text.c
index 91b36e9..7ccfc7f 100644
--- a/src/bin/editor/editor_text.c
+++ b/src/bin/editor/editor_text.c
@@ -35,6 +35,8 @@ editor_state_text_size_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_TEXT_SIZE;
 
    assert(edit_object != NULL);
@@ -92,6 +94,8 @@ editor_state_text_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge,
 {
    Diff *diff;
    Editor_Attribute_Change send;
+   send.edit_object = edit_object;
+
    send.attribute = RM_ATTRIBUTE_STATE_TEXT;
    assert(edit_object != NULL);
    assert(part_name != NULL);
diff --git a/src/bin/resource_manager/resource_manager_react.c 
b/src/bin/resource_manager/resource_manager_react.c
index db4cbdf..17f98e0 100644
--- a/src/bin/resource_manager/resource_manager_react.c
+++ b/src/bin/resource_manager/resource_manager_react.c
@@ -106,7 +106,6 @@ _property_attribute_changed(void *data,
     **                                                                   **
     ** TODO:                                                             **
     ** > edje-edit to model, expand structures to save entire data       **
-    ** > expand editor (top blocks like image, sound, etc) not supported **
     ***********************************************************************
     ***********************************************************************/
    Resource2 *part, *state, *source, *old_source, *item, *program, *group_data;
@@ -115,7 +114,10 @@ _property_attribute_changed(void *data,
    Attribute editor_resource = (int)change->attribute;
    Project *pro = (Project *)data;
    Group2 *group = tabs_current_group_get();
-   if (!group) return;
+
+   /* do not update if change was called from resource_manager_free */
+   if ((!group) || (group->edit_object != change->edit_object))
+     return;
 
    switch ((int)change->attribute)
      {

-- 


Reply via email to