Bug 312156 - Make gfxFont::HasCharacter work for Pango fonts. r=roc

This commit is contained in:
Mats Palmgren 2011-06-22 20:11:47 +02:00
parent 9f293f9979
commit 0efe54035d

View File

@ -161,6 +161,14 @@ FindFunctionSymbol(const char *name)
return result;
}
static PRBool HasChar(FcPattern *aFont, FcChar32 wc)
{
FcCharSet *charset = NULL;
FcPatternGetCharSet(aFont, FC_CHARSET, 0, &charset);
return charset && FcCharSetHasChar(charset, wc);
}
/**
* gfxFcFontEntry:
*
@ -199,6 +207,17 @@ public:
// GetFontTable() here
virtual nsString RealFaceName();
// This is needed to make gfxFontEntry::HasCharacter(aCh) work.
virtual PRBool TestCharacterMap(PRUint32 aCh)
{
for (PRUint32 i = 0; i < mPatterns.Length(); ++i) {
if (HasChar(mPatterns[i], aCh)) {
return PR_TRUE;
}
}
return PR_FALSE;
}
protected:
gfxFcFontEntry(const nsAString& aName)
: gfxFontEntry(aName),
@ -1634,14 +1653,6 @@ gfxFcFontSet::GetFontPatternAt(PRUint32 i)
return mFonts[i].mPattern;
}
static PRBool HasChar(FcPattern *aFont, FcChar32 wc)
{
FcCharSet *charset = NULL;
FcPatternGetCharSet(aFont, FC_CHARSET, 0, &charset);
return charset && FcCharSetHasChar(charset, wc);
}
/**
* gfxPangoFontMap: An implementation of a PangoFontMap.
*