Edje text classes: Fixed issues with textblock and some inconsistency.
authorSeunggyun Kim <sgyun.kim@samsung.com>
Mon, 16 Jul 2012 10:42:41 +0000 (19:42 +0900)
committerSeunggyun Kim <sgyun.kim@samsung.com>
Mon, 16 Jul 2012 10:42:41 +0000 (19:42 +0900)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@73601 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
src/lib/edje_util.c

index 9fe922f..1e92953 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
        * 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.
+
index 10354db..8640727 100644 (file)
@@ -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);