edje/style: Fix a problem where embedded font does not load in edj 63/225963/1
authorBowon Ryu <bowon.ryu@samsung.com>
Mon, 24 Feb 2020 11:16:40 +0000 (20:16 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Wed, 26 Feb 2020 01:55:51 +0000 (10:55 +0900)
Summary:
When edje_font_is_embedded the path of the font must be "font=edje/fonts/%s"
The previous code is "font=%s"
This causes the font to not load properly when edje_font_is_embedded.

Test Plan:
edje_cc test.edc
edje_player test.edj

collections {
    group { "main";
        fonts {
            // Set any two fonts in your local path.
            font: "ANYFONT_1.TTF" "font_1";
            font: "ANYFONT_2.TTF" "font_2";
        }
        styles {
            style { name: "textblock_style_1";
                base: "font=font_1 font_size=30 color=#ffffff";
            }
            style { name: "textblock_style_2";
                base: "font=font_2 font_size=30 color=#ffffff";
            }
        }
        parts {
            spacer { "base";
                scale;
                desc { "default";
                    min: 600 250;
                    max: 600 250;
                }
            }
            rect { "bg";
                scale;
                desc { "default";
                    rel.to: "base";
                    color: 5 5 5 255;
                }
            }
            textblock { "tb1";
                scale;
                desc { "default";
                    rel.to: base;
                    rel1.relative: 0 0;
                    rel2.relative: 1 0.5;
                    text.text: "THIS IS FONT 1";
                    text.style: "textblock_style_1";
                }
            }
            textblock { "tb2";
                scale;
                desc { "default";
                    rel.to: base;
                    rel1.relative: 0 0.5;
                    rel2.relative: 1 1;
                    text.text: "THIS IS FONT 2";
                    text.style: "textblock_style_2";
                }
            }
        }
    }
}

Reviewers: smohanty, CHAN, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11401

Change-Id: I53241e39de9c337a7959c6ed05a60dfc88eebcd2

src/lib/edje/edje_textblock_styles.c

index a5d692d..afac98c 100644 (file)
@@ -354,6 +354,10 @@ _edje_format_reparse(Edje_File *edf, const char *str, Edje_Style_Tag *tag_ret, E
                             char buffer[120];
                             snprintf(buffer, sizeof(buffer), "edje/fonts/%s", val);
                             tag_ret->font = eina_stringshare_add(buffer);
+                            if (eina_strbuf_length_get(result)) eina_strbuf_append(result, " ");
+                            eina_strbuf_append(result, "font=");
+                            eina_strbuf_append(result, buffer);
+                            continue;
                          }
                        else
                          {