hermet pushed a commit to branch master.

commit e83accf1ee4aa881313cec53b20956e32c20acb7
Author: ChunEon Park <[email protected]>
Date:   Wed May 22 18:04:34 2013 +0900

    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.
---
 ChangeLog                            |  4 ++++
 NEWS                                 |  1 +
 src/lib/edje/edje_private.h          | 13 ++++++++-----
 src/lib/edje/edje_text.c             |  2 +-
 src/lib/edje/edje_textblock_styles.c |  7 ++++++-
 5 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ac89338..20a5f11 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 b2bfcb1..899d3b2 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 af9b055..5cc0075 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 4b43ca1..bb1cf9a 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 42fd935..a249649 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, "'");

-- 

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may

Reply via email to