Evas font-engine: Fixed bug with different sizes in Korean text.
authortasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 15 Mar 2011 11:00:29 +0000 (11:00 +0000)
committertasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 15 Mar 2011 11:00:29 +0000 (11:00 +0000)
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.

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

src/lib/engines/common/evas_text_utils.c

index ad1fd9b..fe54ca4 100644 (file)
@@ -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)