summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2013-05-22 18:04:34 +0900
committerChunEon Park <hermet@hermet.pe.kr>2013-05-22 18:04:34 +0900
commite83accf1ee4aa881313cec53b20956e32c20acb7 (patch)
tree32f620332ad010e08e656cf0789d8c87497c5c86
parentf380fa75cfc0341f533bc703ab77be68b9c15481 (diff)
downloadefl-e83accf1ee4aa881313cec53b20956e32c20acb7.tar.gz
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.
-rw-r--r--ChangeLog4
-rw-r--r--NEWS1
-rw-r--r--src/lib/edje/edje_private.h13
-rw-r--r--src/lib/edje/edje_text.c2
-rw-r--r--src/lib/edje/edje_textblock_styles.c7
5 files changed, 20 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index ac89338be6..20a5f11ca0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-05-22 ChunEon Park (Hermet)
+
+ * Edje textblock: keep the text styles when new font by the text class is applied.
+
2013-05-16 Tom Hacohen
* Edje textblock: Fixed issue with quoted formats.
diff --git a/NEWS b/NEWS
index b2bfcb196f..899d3b25b3 100644
--- a/NEWS
+++ b/NEWS
@@ -271,3 +271,4 @@ Fixes:
* Edje entry: return surrounding string until the start position of selection
* Ecore-imf: fix crash when ecore_imf_context_del is called in ecore_imf_context_input_panel_callback_call
* Edje textblock: Fixed issue with quoted formats.
+ * Edje textblock: Keep the text styles when new font by the text class is applied.
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index af9b055738..5cc0075d80 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -1972,13 +1972,16 @@ void _edje_text_init(void);
void _edje_text_part_on_add(Edje *ed, Edje_Real_Part *ep);
void _edje_text_part_on_del(Edje *ed, Edje_Part *ep);
void _edje_text_recalc_apply(Edje *ed,
- Edje_Real_Part *ep,
- Edje_Calc_Params *params,
- Edje_Part_Description_Text *chosen_desc);
+ Edje_Real_Part *ep,
+ Edje_Calc_Params *params,
+ 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/edje_text.c b/src/lib/edje/edje_text.c
index 4b43ca1a63..bb1cf9a510 100644
--- a/src/lib/edje/edje_text.c
+++ b/src/lib/edje/edje_text.c
@@ -102,7 +102,7 @@ _edje_text_fit_x(Edje *ed, Edje_Real_Part *ep,
return text;
}
-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/edje_textblock_styles.c b/src/lib/edje/edje_textblock_styles.c
index 42fd93554c..a249649914 100644
--- a/src/lib/edje/edje_textblock_styles.c
+++ b/src/lib/edje/edje_textblock_styles.c
@@ -238,12 +238,17 @@ _edje_textblock_style_all_update(Edje *ed)
if (tag->font)
{
const char *f;
+ char *sfont = NULL;
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font=");
- f = (tc && tc->font) ? tc->font : tag->font;
+ if (tc) f = _edje_text_font_get(tag->font, tc->font, &sfont);
+ else f = tag->font;
+
eina_strbuf_append_escaped(txt, f);
+
+ if (sfont) free(sfont);
}
eina_strbuf_append(txt, "'");