From 4b96e3706794866e4c098c5da0dada5583b7c685 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 6 Oct 2010 08:53:06 +0000 Subject: [PATCH] i think i foundsed me a fontconfig bug.. this i think is a workartound.. it depends what fc's intent was tho. SVN revision: 53093 --- legacy/evas/src/lib/canvas/evas_font_dir.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/legacy/evas/src/lib/canvas/evas_font_dir.c b/legacy/evas/src/lib/canvas/evas_font_dir.c index 43854bff97..939cf2fc5e 100644 --- a/legacy/evas/src/lib/canvas/evas_font_dir.c +++ b/legacy/evas/src/lib/canvas/evas_font_dir.c @@ -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