* 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.
-
tc->font = eina_stringshare_add(font);
tc->size = size;
+ return EINA_FALSE;
}
- else
- {
- /* 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;
+ /* 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)
+ {
+ eina_hash_del(_edje_text_class_hash, text_class, tc);
+ free(tc);
+ return EINA_FALSE;
}
+ tc->size = size;
/* Tell all members of the text class to recalc */
members = eina_hash_find(_edje_text_class_member_hash, text_class);
if ((tc->name) && (!strcmp(tc->name, text_class)))
{
/* Match and the same, return */
- if ((tc->size == size) ||
- (tc->font == font) ||
- (tc->font && font && !strcmp(tc->font, font)))
- return EINA_TRUE;
+ 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;
/* Update new text class properties */
if (tc->font) eina_stringshare_del(tc->font);