rimmed pushed a commit to branch master.

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

commit dbf1509a6337e386c3409a75b80620214406d17c
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Tue Dec 1 16:14:10 2015 +0200

    editor: implement signal blockers
---
 src/bin/editor/editor_general.c |  2 +-
 src/bin/editor/editor_group.c   |  7 ++++---
 src/bin/editor/editor_macro.h   | 26 +++++++++++++-------------
 src/bin/editor/editor_part.c    | 33 ++++++++++++++++++---------------
 src/bin/editor/editor_states.c  | 11 ++++++-----
 src/bin/editor/editor_text.c    |  3 ++-
 6 files changed, 44 insertions(+), 38 deletions(-)

diff --git a/src/bin/editor/editor_general.c b/src/bin/editor/editor_general.c
index a479dda..70d748e 100644
--- a/src/bin/editor/editor_general.c
+++ b/src/bin/editor/editor_general.c
@@ -28,7 +28,7 @@ _editor_save(Evas_Object *edit_object, Eina_Bool 
current_group)
    if (!edje_edit_without_source_save(edit_object, current_group))
      return false;
 
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_SAVED, NULL);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_SAVED, NULL);
    return true;
 }
 Eina_Bool
diff --git a/src/bin/editor/editor_group.c b/src/bin/editor/editor_group.c
index b18957c..1629adf 100644
--- a/src/bin/editor/editor_group.c
+++ b/src/bin/editor/editor_group.c
@@ -19,6 +19,7 @@
 
 #include "editor.h"
 
+extern int _editor_signals_blocked;
 Eina_Bool
 editor_group_add(Evas_Object *obj, const char *name)
 {
@@ -113,7 +114,7 @@ editor_group_max_## VAL ##_set(Evas_Object *obj, Change 
*change, Eina_Bool merge
    if (!edje_edit_group_max_## VAL ##_set(obj, new_value)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -156,7 +157,7 @@ editor_group_min_## VAL ##_set(Evas_Object *obj, Change 
*change, Eina_Bool merge
    if (!edje_edit_group_min_## VAL ##_set(obj, new_value)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -190,6 +191,6 @@ editor_group_name_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge,
    if (!edje_edit_group_name_set(edit_object, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
diff --git a/src/bin/editor/editor_macro.h b/src/bin/editor/editor_macro.h
index c5b351f..805a963 100644
--- a/src/bin/editor/editor_macro.h
+++ b/src/bin/editor/editor_macro.h
@@ -51,7 +51,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool
    if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, 
state_val, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -89,7 +89,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool
    if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, 
state_val, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -127,7 +127,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, 
state_val, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -179,7 +179,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
           change_diff_add(change, diff); \
      } \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -224,7 +224,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, 
state_val, n4, n5, n6, n7)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -262,7 +262,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, 
state_val, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -295,7 +295,7 @@ editor_part_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
    if (!edje_edit_part_## FUNC ##_set(edit_object, part_name, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -328,7 +328,7 @@ editor_part_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
    if (!edje_edit_part_## FUNC ##_set(edit_object, part_name, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -361,7 +361,7 @@ editor_## FUNC ##_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge,
    if (!edje_edit_## FUNC ##_set(edit_object, name, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -397,7 +397,7 @@ editor_part_item_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_B
    if (!edje_edit_part_item_## FUNC ##_set(edit_object, part_name, item_name, 
new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -433,7 +433,7 @@ editor_part_item_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_B
    if (!edje_edit_part_item_## FUNC ##_set(edit_object, part_name, item_name, 
new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -469,7 +469,7 @@ editor_part_item_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_B
    if (!edje_edit_part_item_## FUNC ##_set(edit_object, part_name, item_name, 
new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -507,6 +507,6 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, 
state_val, new_val)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c
index fb59746..ac30d5e 100644
--- a/src/bin/editor/editor_part.c
+++ b/src/bin/editor/editor_part.c
@@ -21,6 +21,7 @@
 #include "editor_macro.h"
 #include "string_common.h"
 
+extern int _editor_signals_blocked;
 Eina_Bool
 editor_part_effect_set(Evas_Object *edit_object, Change *change, Eina_Bool 
merge,
                        const char *part_name, Edje_Text_Effect new_val)
@@ -49,7 +50,7 @@ editor_part_effect_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge
    if (!edje_edit_part_effect_set(edit_object, part_name, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -81,7 +82,7 @@ editor_part_ignore_flags_set(Evas_Object *edit_object, Change 
*change, Eina_Bool
    if (!edje_edit_part_ignore_flags_set(edit_object, part_name, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -139,8 +140,8 @@ editor_part_name_set(Evas_Object *edit_object, Change 
*change, Eina_Bool merge,
    _editor_project_changed();
    ren.old_name = name;
    ren.new_name = new_val;
-   evas_object_smart_callback_call(ap.win, SIGNAL_PART_RENAMED, &ren);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_PART_RENAMED, &ren);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -175,7 +176,7 @@ editor_part_item_aspect_mode_set(Evas_Object *edit_object, 
Change *change, Eina_
    if (!edje_edit_part_item_aspect_mode_set(edit_object, part_name, item_name, 
new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -231,7 +232,7 @@ editor_part_item_source_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_part_item_source_set(edit_object, part_name, item_name, 
new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -273,7 +274,7 @@ editor_part_item_padding_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_part_item_padding_set(edit_object, part_name, item_name, n3, 
n4, n5, n6))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -305,7 +306,7 @@ editor_part_select_mode_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_part_select_mode_set(edit_object, part_name, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -337,7 +338,7 @@ editor_part_entry_mode_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
    if (!edje_edit_part_entry_mode_set(edit_object, part_name, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -369,7 +370,7 @@ editor_part_pointer_mode_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_part_pointer_mode_set(edit_object, part_name, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -401,7 +402,7 @@ editor_part_cursor_mode_set(Evas_Object *edit_object, 
Change *change, Eina_Bool
    if (!edje_edit_part_cursor_mode_set(edit_object, part_name, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 
@@ -475,7 +476,7 @@ editor_part_item_append(Evas_Object *edit_object, Change 
*change, Eina_Bool merg
    _editor_project_changed();
    event_info.part_name = eina_stringshare_add(part_name);
    event_info.item_name = eina_stringshare_add(item_name);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_PART_ITEM_ADDED, 
(void *)&event_info);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_PART_ITEM_ADDED, (void *)&event_info);
    eina_stringshare_del(event_info.part_name);
    eina_stringshare_del(event_info.item_name);
    return true;
@@ -493,7 +494,7 @@ editor_part_item_del(Evas_Object *edit_object, Change 
*change, Eina_Bool merge _
 
    event_info.part_name = eina_stringshare_add(part_name);
    event_info.item_name = eina_stringshare_add(item_name);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_PART_ITEM_DELETED, 
(void *)&event_info);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_PART_ITEM_DELETED, (void *)&event_info);
    if (change)
      {
         source_group = edje_edit_part_item_source_get(edit_object, part_name, 
item_name);
@@ -618,9 +619,10 @@ editor_part_add(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNUS
    if (!edje_edit_part_add(edit_object, part_name, type))
      return false;
 
+   editor_save(edit_object);
    _editor_project_changed();
    event_info = eina_stringshare_add(part_name);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_PART_ADDED, (void 
*)event_info);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_PART_ADDED, (void *)event_info);
    eina_stringshare_del(event_info);
    return true;
 }
@@ -636,7 +638,7 @@ editor_part_del(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNUS
    assert(edit_object != NULL);
 
    event_info = eina_stringshare_add(part_name);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_PART_ITEM_DELETED, 
(void *)event_info);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_PART_DELETED, (void *)event_info);
 
    if (change)
      {
@@ -660,6 +662,7 @@ editor_part_del(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNUS
         return false;
      }
    eina_stringshare_del(event_info);
+   editor_save(edit_object);
    _editor_project_changed();
    return true;
 }
diff --git a/src/bin/editor/editor_states.c b/src/bin/editor/editor_states.c
index 83e1fda..3b5ddf3 100644
--- a/src/bin/editor/editor_states.c
+++ b/src/bin/editor/editor_states.c
@@ -20,6 +20,7 @@
 #include "editor.h"
 #include "editor_macro.h"
 
+extern int _editor_signals_blocked;
 EDITOR_STATE_DOUBLE(rel1_relative_x, ATTRIBUTE_STATE_REL1_RELATIVE_X)
 EDITOR_STATE_DOUBLE(rel1_relative_y, ATTRIBUTE_STATE_REL1_RELATIVE_Y)
 EDITOR_STATE_DOUBLE(rel2_relative_x, ATTRIBUTE_STATE_REL2_RELATIVE_X)
@@ -93,7 +94,7 @@ editor_state_max_## VAL ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bo
    if (!edje_edit_state_max_## VAL ##_set(edit_object, part_name, state_name, 
state_val, new_value)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -142,7 +143,7 @@ editor_state_min_## VAL ##_set(Evas_Object *edit_object, 
Change *change, Eina_Bo
    if (!edje_edit_state_min_## VAL ##_set(edit_object, part_name, state_name, 
state_val, new_value)) \
      return false; \
    _editor_project_changed(); \
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute); \
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); \
    return true; \
 }
 
@@ -323,7 +324,7 @@ editor_state_add(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNU
    _editor_project_changed();
    event_info.part_name = eina_stringshare_add(part_name);
    event_info.state_name = eina_stringshare_printf("%s %.2f", state_name, 
state_val);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_STATE_ADDED, (void 
*)&event_info);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_STATE_ADDED, (void *)&event_info);
    eina_stringshare_del(event_info.part_name);
    eina_stringshare_del(event_info.state_name);
    return true;
@@ -362,7 +363,7 @@ editor_state_copy(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UN
    _editor_project_changed();
    event_info.part_name = eina_stringshare_add(part_name);
    event_info.state_name = eina_stringshare_printf("%s %.2f", state_name, 
state_val);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_STATE_ADDED, (void 
*)&event_info);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_STATE_ADDED, (void *)&event_info);
    eina_stringshare_del(event_info.part_name);
    eina_stringshare_del(event_info.state_name);
    return true;
@@ -379,7 +380,7 @@ editor_state_del(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNU
 
    event_info.part_name = eina_stringshare_add(part_name);
    event_info.state_name = eina_stringshare_printf("%s %.2f", state_name, 
state_val);
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_STATE_DELETED, (void 
*)&event_info);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_STATE_DELETED, (void *)&event_info);
    if (change)
      {
         if (!editor_state_reset(edit_object, change, false, part_name, 
state_name, state_val))
diff --git a/src/bin/editor/editor_text.c b/src/bin/editor/editor_text.c
index 6cc7b3a..6471595 100644
--- a/src/bin/editor/editor_text.c
+++ b/src/bin/editor/editor_text.c
@@ -20,6 +20,7 @@
 #include "editor.h"
 #include "editor_macro.h"
 
+extern int _editor_signals_blocked;
 EDITOR_STATE_DOUBLE(text_align_x, ATTRIBUTE_STATE_TEXT_ALIGN_X)
 EDITOR_STATE_DOUBLE(text_align_y, ATTRIBUTE_STATE_TEXT_ALIGN_Y)
 
@@ -61,7 +62,7 @@ editor_state_text_size_set(Evas_Object *edit_object, Change 
*change, Eina_Bool m
    if (!edje_edit_state_text_size_set(edit_object, part_name, state_name, 
state_val, new_val))
      return false;
    _editor_project_changed();
-   evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute);
    return true;
 }
 

-- 


Reply via email to