i think i foundsed me a fontconfig bug.. this i think is a
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 6 Oct 2010 08:53:06 +0000 (08:53 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 6 Oct 2010 08:53:06 +0000 (08:53 +0000)
workartound.. it depends what fc's intent was tho.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@53093 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_font_dir.c

index 43854bf..939cf2f 100644 (file)
@@ -252,6 +252,13 @@ evas_load_fontconfig(Evas *evas, FcFontSet *set, int size)
 }
 #endif
 
+struct _FcPattern {   
+   int             num;
+   int             size;
+   intptr_t        elts_offset;
+   int             ref;
+};
+
 void *
 evas_font_load(Evas *evas, const char *name, const char *source, int size)
 {
@@ -448,6 +455,7 @@ evas_font_load(Evas *evas, const char *name, const char *source, int size)
    fonts = eina_list_free(fonts);
 
 #ifdef HAVE_FONTCONFIG
+   
    if (!font) /* Search using fontconfig */
      {
        FcResult res;
@@ -465,7 +473,13 @@ evas_font_load(Evas *evas, const char *name, const char *source, int size)
             p_nm = NULL;
          }
        else
-         font = evas_load_fontconfig(evas, set, size);
+          {
+             // FIXME: this i think is a bugfix for a rare bug... but i'm
+             // not sure 100%. it seems that way from fc. if trim is set
+             // to FcTrue...
+             FcPatternReference(p_nm); /* we have to reference count the pat */
+             font = evas_load_fontconfig(evas, set, size);
+          }
      }
 #endif