evas/font: Add evas_font_reinit API.
authorYoungbok Shin <youngb.shin@samsung.com>
Thu, 19 Mar 2015 09:01:41 +0000 (18:01 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 19 Mar 2015 09:01:42 +0000 (18:01 +0900)
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

src/lib/evas/Evas_Common.h
src/lib/evas/canvas/evas_font_dir.c

index ccefa1a..c10668a 100644 (file)
@@ -5690,6 +5690,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);
+
+/**
  * @}
  */
 
index 31debb4..c3491cc 100644 (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
+}