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); \

-- 


Reply via email to