|
@@ -169,12 +169,14 @@ static FT_Error GetFontByFaceName(const
|
|
|
index = 0;
|
|
|
do {
|
|
|
err = FT_New_Face(_library, font_path, index, face);
|
|
|
if (err != FT_Err_Ok) break;
|
|
|
|
|
|
if (strncasecmp(font_name, (*face)->family_name, strlen((*face)->family_name)) == 0) break;
|
|
|
/* Try english name if font name failed */
|
|
|
if (strncasecmp(font_name + strlen(font_name) + 1, (*face)->family_name, strlen((*face)->family_name)) == 0) break;
|
|
|
err = FT_Err_Cannot_Open_Resource;
|
|
|
|
|
|
} while ((FT_Long)++index != (*face)->num_faces);
|
|
|
|
|
|
|
|
|
folder_error:
|
|
@@ -293,18 +295,24 @@ static int CALLBACK EnumFontCallback(con
|
|
|
ReleaseDC(NULL, dc);
|
|
|
DeleteObject(font);
|
|
|
}
|
|
|
if ((fs.fsCsb[0] & info->locale.lsCsbSupported[0]) == 0 && (fs.fsCsb[1] & info->locale.lsCsbSupported[1]) == 0) return 1;
|
|
|
}
|
|
|
|
|
|
const char *font_name = GetEnglishFontName(logfont);
|
|
|
DEBUG(freetype, 1, "Fallback font: %s", font_name);
|
|
|
const char *english_name = GetEnglishFontName(logfont);
|
|
|
const char *font_name = WIDE_TO_MB(logfont->elfFullName);
|
|
|
DEBUG(freetype, 1, "Fallback font: %s (%s)", font_name, english_name);
|
|
|
|
|
|
strecpy(info->settings->small_font, font_name, lastof(info->settings->small_font));
|
|
|
strecpy(info->settings->medium_font, font_name, lastof(info->settings->medium_font));
|
|
|
strecpy(info->settings->large_font, font_name, lastof(info->settings->large_font));
|
|
|
|
|
|
/* Add english name after font name */
|
|
|
strecpy(info->settings->small_font + strlen(info->settings->small_font) + 1, english_name, lastof(info->settings->small_font));
|
|
|
strecpy(info->settings->medium_font + strlen(info->settings->medium_font) + 1, english_name, lastof(info->settings->medium_font));
|
|
|
strecpy(info->settings->large_font + strlen(info->settings->large_font) + 1, english_name, lastof(info->settings->large_font));
|
|
|
return 0; // stop enumerating
|
|
|
}
|
|
|
|
|
|
bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, int winlangid)
|
|
|
{
|
|
|
EFCParam langInfo;
|