From 1767815bee458fcd02d7ccf7700e810cea2eeb57 Mon Sep 17 00:00:00 2001 From: Seunggyun Kim Date: Mon, 16 Jul 2012 19:42:41 +0900 Subject: [PATCH] Edje text classes: Fixed issues with textblock and some inconsistency. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@73601 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 6 ++++++ src/lib/edje_util.c | 35 +++++++++++++++-------------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9fe922f..1e92953 100644 --- a/ChangeLog +++ b/ChangeLog @@ -510,3 +510,9 @@ * Textblock: Fixed issue with updating only the font size using text classes. + + * Textblock: Fixed updating textblock text_class with + edje_text_class_set. + * Text classes: Fixed edje_text_class_set to behave like + edje_object_text_class_set (and as expected) wrt NULL fonts. + diff --git a/src/lib/edje_util.c b/src/lib/edje_util.c index 10354db..8640727 100644 --- a/src/lib/edje_util.c +++ b/src/lib/edje_util.c @@ -813,23 +813,20 @@ edje_text_class_set(const char *text_class, const char *font, Evas_Font_Size siz tc->font = eina_stringshare_add(font); tc->size = size; - return EINA_FALSE; } - - /* If the class found is the same just return */ - if ((tc->size == size) && (tc->font) && (!strcmp(tc->font, font))) - return EINA_TRUE; - - /* Update the class found */ - eina_stringshare_del(tc->font); - tc->font = eina_stringshare_add(font); - if (!tc->font) + else { - eina_hash_del(_edje_text_class_hash, text_class, tc); - free(tc); - return EINA_FALSE; + /* Match and the same, return */ + if ((tc->size == size) || + (tc->font == font) || + (tc->font && font && !strcmp(tc->font, font))) + return EINA_TRUE; + + /* Update the class found */ + eina_stringshare_del(tc->font); + tc->font = eina_stringshare_add(font); + tc->size = size; } - tc->size = size; /* Tell all members of the text class to recalc */ members = eina_hash_find(_edje_text_class_member_hash, text_class); @@ -920,12 +917,10 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char if ((tc->name) && (!strcmp(tc->name, text_class))) { /* Match and the same, return */ - if ((tc->font) && (font) && (!strcmp(tc->font, font)) && - (tc->size == size)) - return EINA_TRUE; - - /* No font but size is the same, return */ - if ((!tc->font) && (!font) && (tc->size == size)) return EINA_TRUE; + if ((tc->size == size) || + (tc->font == font) || + (tc->font && font && !strcmp(tc->font, font))) + return EINA_TRUE; /* Update new text class properties */ if (tc->font) eina_stringshare_del(tc->font); -- 2.7.4