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