From 34bf708aae52bae81b8ab4e7aee92cf8cd0d7ae6 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Tue, 15 Mar 2011 11:00:29 +0000 Subject: [PATCH] Evas font-engine: Fixed bug with different sizes in Korean text. I'm still not sure if it's just a workaround that just fixes a symptom of a bigger issue, or actually needed, but this is good until I figure this out completely. SVN revision: 57761 --- .../evas/src/lib/engines/common/evas_text_utils.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/legacy/evas/src/lib/engines/common/evas_text_utils.c b/legacy/evas/src/lib/engines/common/evas_text_utils.c index ad1fd9b469..fe54ca4f24 100644 --- a/legacy/evas/src/lib/engines/common/evas_text_utils.c +++ b/legacy/evas/src/lib/engines/common/evas_text_utils.c @@ -296,6 +296,19 @@ evas_common_text_props_content_create(void *_fn, const Eina_Unicode *text, { index = evas_common_font_glyph_search(fn, &fi, REPLACEMENT_CHAR); } + + /* Should we really set the size per fi? This fixes a bug for Korean + * because for some reason different fis are chosen for different + * chars in some cases. But we should find the source of the problem + * and not just fix the symptom. */ + if (fi->src->current_size != fi->size) + { + FTLOCK(); + FT_Activate_Size(fi->ft.size); + FTUNLOCK(); + fi->src->current_size = fi->size; + } + LKL(fi->ft_mutex); fg = evas_common_font_int_cache_glyph_get(fi, index); if (!fg)