From 3b7a6cd3e1d0a0bd547b571f8bce95845e91d800 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Wed, 22 May 2013 19:38:48 +0900 Subject: [PATCH] edje/textblock - keep the styles if the new font by the text class is applied. text is already did. for the consistency textblock should be kept the same way. commit e83accf1ee4aa881313cec53b20956e32c20acb7 Author: ChunEon Park @hermet.pe.kr> Date: Wed May 22 18:04:34 2013 +0900 Change-Id: If16375f278751e1da1f1fa2c6b63ccb2418b31cf --- src/lib/edje_private.h | 7 +++++-- src/lib/edje_text.c | 2 +- src/lib/edje_textblock_styles.c | 19 ++++++++++++------- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/lib/edje_private.h b/src/lib/edje_private.h index c7e5a5d..3875781 100644 --- a/src/lib/edje_private.h +++ b/src/lib/edje_private.h @@ -1783,8 +1783,11 @@ void _edje_text_recalc_apply(Edje *ed, Edje_Part_Description_Text *chosen_desc); Evas_Font_Size _edje_text_size_calc(Evas_Font_Size size, Edje_Text_Class *tc); const char * _edje_text_class_font_get(Edje *ed, - Edje_Part_Description_Text *chosen_desc, - int *size, char **free_later); + Edje_Part_Description_Text *chosen_desc, + int *size, char **free_later); +const char * _edje_text_font_get(const char *base, const char *new, + char **free_later); + Edje_Real_Part *_edje_real_part_get(const Edje *ed, const char *part); diff --git a/src/lib/edje_text.c b/src/lib/edje_text.c index 700154c..6529732 100644 --- a/src/lib/edje_text.c +++ b/src/lib/edje_text.c @@ -277,7 +277,7 @@ _edje_text_fit_x(Edje *ed, Edje_Real_Part *ep, return buf; } -static const char * +const char * _edje_text_font_get(const char *base, const char *new, char **free_later) { const char *base_style, *new_style, *aux; diff --git a/src/lib/edje_textblock_styles.c b/src/lib/edje_textblock_styles.c index bf7f330..3c5ca55 100644 --- a/src/lib/edje_textblock_styles.c +++ b/src/lib/edje_textblock_styles.c @@ -237,16 +237,21 @@ _edje_textblock_style_all_update(Edje *ed) /* Add font name last to save evas from multiple loads */ if (tag->font) { - const char *f; + const char *f; + char *sfont = NULL; - eina_strbuf_append(txt, " "); - eina_strbuf_append(txt, "font="); + eina_strbuf_append(txt, " "); + eina_strbuf_append(txt, "font="); - f = (tc && tc->font) ? tc->font : tag->font; - eina_strbuf_append_escaped(txt, f); - } + if (tc) f = _edje_text_font_get(tag->font, tc->font, &sfont); + else f = tag->font; - eina_strbuf_append(txt, "'"); + eina_strbuf_append_escaped(txt, f); + + if (sfont) free(sfont); + } + + eina_strbuf_append(txt, "'"); } if (fontset) free(fontset); if (fontsource) free(fontsource); -- 2.7.4