diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-09-21 19:15:30 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-09-21 19:15:30 +0400 |
commit | ae0124157f012aeda994534c21aebda1bae054cd (patch) | |
tree | 3b3ddbb2f9958f085fa75161683c571bf46821d7 /source/blender/editors/interface/interface_style.c | |
parent | a12e06dc3591bc1e95372e08a08cf85fb53960e1 (diff) |
Translation: reload font on enabling/disabling use international fonts.
Diffstat (limited to 'source/blender/editors/interface/interface_style.c')
-rw-r--r-- | source/blender/editors/interface/interface_style.c | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c index 5ea20b33b3a..3a9879384a3 100644 --- a/source/blender/editors/interface/interface_style.c +++ b/source/blender/editors/interface/interface_style.c @@ -323,13 +323,28 @@ void uiStyleInit(void) if(font->uifont_id==UIFONT_DEFAULT) { #ifdef INTERNATIONAL - int unifont_size; - unsigned char *unifont_ttf= BLF_get_unifont(&unifont_size); - - if(unifont_ttf) - font->blf_id= BLF_load_mem_unique("default", unifont_ttf, unifont_size); - else - font->blf_id= BLF_load_mem("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size); + int font_size= datatoc_bfont_ttf_size; + unsigned char *font_ttf= (unsigned char*)datatoc_bfont_ttf; + static int last_font_size = 0; + + /* use unicode font for translation */ + if(U.transopts & USER_DOTRANSLATE) { + font_ttf= BLF_get_unifont(&font_size); + + if(!font_ttf) { + /* fall back if not found */ + font_size= datatoc_bfont_ttf_size; + font_ttf= (unsigned char*)datatoc_bfont_ttf; + } + } + + /* relload only if needed */ + if(last_font_size != font_size) { + BLF_unload("default"); + last_font_size = font_size; + } + + font->blf_id= BLF_load_mem("default", font_ttf, font_size); #else font->blf_id= BLF_load_mem("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size); #endif |