summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_font_dir.c
diff options
context:
space:
mode:
authorYoungbok Shin <youngb.shin@samsung.com>2016-01-26 10:48:42 +0000
committerTom Hacohen <tom@stosb.com>2016-02-02 10:22:09 +0000
commitd15d91e0da48fc589a6e38dfb9f8bca35846de70 (patch)
tree4b3a55bf009f7746cf381eb88c4b301daf0ca9be /src/lib/evas/canvas/evas_font_dir.c
parent6b12ae1e03e93a10b0120aa15d1ff40b022ec189 (diff)
downloadefl-d15d91e0da48fc589a6e38dfb9f8bca35846de70.tar.gz
Evas Text/Textblock: Use locale for lang as default.
Summary: The configuration files for Fontconfig can describe how font list is made according to language information. EFL also set the language for each Evas textblock styles and used for loading font list. But, this is inconvenient to use if we want to apply language for loading font list according to system-wide locale information. This patch will apply locale information for font list if there is no specific language in description. And it also add [lang=auto] for Evas Textblock. auto - It loads locale for language. none - It disables language. @feature Test Plan: N/A Reviewers: woohyun, herdsman, tasn Subscribers: jpeg, cedric Differential Revision: https://phab.enlightenment.org/D3344
Diffstat (limited to 'src/lib/evas/canvas/evas_font_dir.c')
-rw-r--r--src/lib/evas/canvas/evas_font_dir.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_font_dir.c b/src/lib/evas/canvas/evas_font_dir.c
index ffb4423fde..d357ce87fe 100644
--- a/src/lib/evas/canvas/evas_font_dir.c
+++ b/src/lib/evas/canvas/evas_font_dir.c
@@ -469,6 +469,17 @@ evas_font_desc_cmp(const Evas_Font_Description *a,
(a->spacing == b->spacing) && (a->lang == b->lang));
}
+const char *
+evas_font_lang_normalize(const char *lang)
+{
+ if (!lang || !strcmp(lang, "none")) return NULL;
+
+ if (!strcmp(lang, "auto"))
+ return evas_common_language_from_locale_full_get();
+
+ return lang;
+}
+
void
evas_font_name_parse(Evas_Font_Description *fdesc, const char *name)
{
@@ -520,6 +531,7 @@ evas_font_name_parse(Evas_Font_Description *fdesc, const char *name)
{
const char *tmp = name + 6;
eina_stringshare_replace_length(&(fdesc->lang), tmp, tend - tmp);
+ eina_stringshare_replace(&(fdesc->lang), evas_font_lang_normalize(fdesc->lang));
}
}
}