rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=0fca614813bf0a98a1e8dd167cb35af3390df4fa
commit 0fca614813bf0a98a1e8dd167cb35af3390df4fa Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Tue Oct 20 16:23:33 2015 +0300 property: update combobox logic don't apply value if it is already aplied. text efects combobox will be updated later --- src/bin/ui/property.c | 13 ++++++++++++- src/bin/ui/property_macros.h | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/bin/ui/property.c b/src/bin/ui/property.c index 71c49f0..eea0ec3 100644 --- a/src/bin/ui/property.c +++ b/src/bin/ui/property.c @@ -1669,12 +1669,23 @@ _on_state_color_class_change(void *data, { Prop_Data *pd = (Prop_Data *)data; int r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3; - Eina_Stringshare *value = NULL; + Eina_Stringshare *value = NULL, *old_value; Ewe_Combobox_Item *item = event_info; assert(pd != NULL); value = strcmp(item->title, "None") ? item->title : NULL; + + old_value = edje_edit_state_color_class_get(pd->group->edit_object, + pd->part->name, + pd->part->current_state->parsed_name, + pd->part->current_state->parsed_val); + if (value == old_value) /* stringshares */ + { + eina_stringshare_del(old_value); + return; + } + eina_stringshare_del(old_value); Eina_Stringshare *msg = eina_stringshare_printf(_("color class changed to %s"), item->title); Change *change = change_add(msg); eina_stringshare_del(msg); diff --git a/src/bin/ui/property_macros.h b/src/bin/ui/property_macros.h index 0611660..b866d49 100644 --- a/src/bin/ui/property_macros.h +++ b/src/bin/ui/property_macros.h @@ -273,6 +273,9 @@ _on_##SUB##_##VALUE##_change(void *data, \ { \ Prop_Data *pd = (Prop_Data *)data; \ Ewe_Combobox_Item *item = (Ewe_Combobox_Item *)event_info; \ + TYPE old_val = edje_edit_##SUB##_##VALUE##_get(pd->group->edit_object ARGS); \ + if (item->index == old_val) \ + return; \ Eina_Stringshare *msg = eina_stringshare_printf(DESCRIPTION, item->title); \ Change *change = change_add(msg); \ eina_stringshare_del(msg); \ @@ -832,6 +835,14 @@ _on_##MEMBER##_##VALUE##_change(void *data, \ { \ Prop_Data *pd = (Prop_Data *)data; \ Ewe_Combobox_Item *item = ei; \ + Eina_Stringshare *old_val = edje_edit_##SUB##_##VALUE##_get(pd->group->edit_object ARGS); \ + if (((item->index != 0) && (item->title == old_val)) /*stringshares*/ || \ + ((item->index == 0) && (old_val == NULL))) \ + { \ + eina_stringshare_del(old_val); \ + return; \ + } \ + eina_stringshare_del(old_val); \ Eina_Stringshare *msg = eina_stringshare_printf(DESCRIPTION, item->title); \ Change *change = change_add(msg); \ eina_stringshare_del(msg); \ @@ -1686,6 +1697,15 @@ _on_##MEMBER##_##VALUE##_change(void *data, \ { \ Prop_Data *pd = (Prop_Data *)data; \ Ewe_Combobox_Item *item = ei; \ + Eina_Stringshare *old_val = edje_edit_##SUB##_##VALUE##_get(pd->group->edit_object, \ + pd->part->name, pd->part->current_state->parsed_name, pd->part->current_state->parsed_val); \ + if (((item->index != 0) && (item->title == old_val)) /*stringshares*/ || \ + ((item->index == 0) && (old_val == NULL))) \ + { \ + eina_stringshare_del(old_val); \ + return; \ + } \ + eina_stringshare_del(old_val); \ Eina_Stringshare *msg = eina_stringshare_printf(DESCRIPTION, !strcmp(item->title, _("None")) ? NULL : item->title); \ Change *change = change_add(msg); \ eina_stringshare_del(msg); \ --