evas/font: Add evas_font_reinit API.

Summary:
Reinitialize FontConfig. If FontConfig has to be reinitialized
according to changes of system enviroments(ex. Changing font config files), it will be useful.

Reviewers: woohyun, seoz, tasn, cedric, raster

Reviewed By: raster

Subscribers: raster, herdsman, cedric

Differential Revision: https://phab.enlightenment.org/D1962
This commit is contained in:
Youngbok Shin 2015-03-19 18:01:41 +09:00 committed by Carsten Haitzler (Rasterman)
parent c964c72366
commit 6616d11619
2 changed files with 25 additions and 0 deletions

View File

@ -5689,6 +5689,15 @@ EAPI void evas_font_path_global_prepend(const char *path) EIN
*/
EAPI const Eina_List *evas_font_path_global_list(void) EINA_WARN_UNUSED_RESULT;
/**
* Reinitialize FontConfig. If FontConfig has to be reinitialized
* according to changes of system enviroments(ex. Changing font config files), it will be useful.
*
* @ingroup Evas_Font_Path_Group
* @since 1.14
*/
EAPI void evas_font_reinit(void);
/**
* @}
*/

View File

@ -1493,3 +1493,19 @@ evas_font_available_list_free(Evas *eo_e, Eina_List *available)
evas_font_dir_available_list_free(available);
}
EAPI void
evas_font_reinit(void)
{
#ifdef HAVE_FONTCONFIG
Eina_List *l;
char *path;
if (fc_config) FcConfigDestroy(fc_config);
FcInitReinitialize();
fc_config = FcInitLoadConfigAndFonts();
EINA_LIST_FOREACH(global_font_path, l, path)
FcConfigAppFontAddDir(fc_config, (const FcChar8 *) path);
#endif
}