bug 636042 - All fonts are serif, give preference to stock android fonts r=jdaggett

This commit is contained in:
Brad Lassey 2011-07-28 01:28:43 -04:00
parent 8c45d9037a
commit fabf4f3f9a

View File

@ -417,6 +417,23 @@ void
gfxAndroidPlatform::FindFontsInDirectory(const nsCString& aFontsDir,
FontNameCache* aFontCache)
{
static const char* sStandardFonts[] = {
"DroidSans.ttf",
"DroidSans-Bold.ttf",
"DroidSerif-Regular.ttf",
"DroidSerif-Bold.ttf",
"DroidSerif-Italic.ttf",
"DroidSerif-BoldItalic.ttf",
"DroidSansMono.ttf",
"DroidSansArabic.ttf",
"DroidSansHebrew.ttf",
"DroidSansThai.ttf",
"MTLmr3m.ttf",
"MTLc3m.ttf",
"DroidSansJapanese.ttf",
"DroidSansFallback.ttf"
};
DIR *d = opendir(aFontsDir.get());
struct dirent *ent = NULL;
while(d && (ent = readdir(d)) != NULL) {
@ -424,14 +441,25 @@ gfxAndroidPlatform::FindFontsInDirectory(const nsCString& aFontsDir,
if (namelen > 4 &&
strcasecmp(ent->d_name + namelen - 4, ".ttf") == 0)
{
nsCString s(aFontsDir);
s.Append(nsDependentCString(ent->d_name));
bool isStdFont = false;
for (int i = 0; i < NS_ARRAY_LENGTH(sStandardFonts) && !isStdFont; i++) {
isStdFont = strcmp(sStandardFonts[i], ent->d_name) == 0;
}
if (!isStdFont) {
nsCString s(aFontsDir);
s.Append(nsDependentCString(ent->d_name));
AppendFacesFromFontFile(nsPromiseFlatCString(s).get(),
aFontCache, &mFontList);
AppendFacesFromFontFile(s.get(), aFontCache, &mFontList);
}
}
}
closedir(d);
for (int i = 0; i < NS_ARRAY_LENGTH(sStandardFonts); i++) {
nsCString s(aFontsDir);
s.Append(nsDependentCString(sStandardFonts[i]));
AppendFacesFromFontFile(s.get(), aFontCache, &mFontList);
}
}
void