mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
Bug 550772 - fallback pref font handling for CJK fonts is broken r=jdaggett
This commit is contained in:
parent
a22f056955
commit
5099a845d8
@ -67,6 +67,7 @@ class nsIAtom;
|
||||
|
||||
// pref lang id's for font prefs
|
||||
// !!! needs to match the list of pref font.default.xx entries listed in all.js !!!
|
||||
// !!! don't use as bit mask, this may grow larger !!!
|
||||
|
||||
enum eFontPrefLang {
|
||||
eFontPrefLang_Western = 0,
|
||||
|
@ -549,13 +549,20 @@ gfxPlatform::GetFontPrefLangFor(PRUint8 aUnicodeRange)
|
||||
}
|
||||
}
|
||||
|
||||
const PRUint32 kFontPrefLangCJKMask = (1 << (PRUint32) eFontPrefLang_Japanese) | (1 << (PRUint32) eFontPrefLang_ChineseTW)
|
||||
| (1 << (PRUint32) eFontPrefLang_ChineseCN) | (1 << (PRUint32) eFontPrefLang_ChineseHK)
|
||||
| (1 << (PRUint32) eFontPrefLang_Korean) | (1 << (PRUint32) eFontPrefLang_CJKSet);
|
||||
PRBool
|
||||
gfxPlatform::IsLangCJK(eFontPrefLang aLang)
|
||||
{
|
||||
return kFontPrefLangCJKMask & (1 << (PRUint32) aLang);
|
||||
switch (aLang) {
|
||||
case eFontPrefLang_Japanese:
|
||||
case eFontPrefLang_ChineseTW:
|
||||
case eFontPrefLang_ChineseCN:
|
||||
case eFontPrefLang_ChineseHK:
|
||||
case eFontPrefLang_Korean:
|
||||
case eFontPrefLang_CJKSet:
|
||||
return PR_TRUE;
|
||||
default:
|
||||
return PR_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -76,35 +76,37 @@ const PRUint8 kRangeTibetan = 26;
|
||||
|
||||
const PRUint8 kRangeSpecificItemNum = 27;
|
||||
|
||||
//range/rangeSet grow to this place 27-30
|
||||
//range/rangeSet grow to this place 27-29
|
||||
|
||||
const PRUint8 kRangeSetStart = 31; // range set definition starts from here
|
||||
const PRUint8 kRangeSetLatin = 31;
|
||||
const PRUint8 kRangeSetCJK = 32;
|
||||
const PRUint8 kRangeSetEnd = 32; // range set definition ends here
|
||||
const PRUint8 kRangeSetStart = 30; // range set definition starts from here
|
||||
const PRUint8 kRangeSetLatin = 30;
|
||||
const PRUint8 kRangeSetCJK = 31;
|
||||
const PRUint8 kRangeSetEnd = 31; // range set definition ends here, this
|
||||
// and smaller ranges are used as bit
|
||||
// mask, don't increase this value.
|
||||
|
||||
// less frequently used range definition
|
||||
const PRUint8 kRangeSurrogate = 33;
|
||||
const PRUint8 kRangePrivate = 34;
|
||||
const PRUint8 kRangeMisc = 35;
|
||||
const PRUint8 kRangeUnassigned = 36;
|
||||
const PRUint8 kRangeSyriac = 37;
|
||||
const PRUint8 kRangeThaana = 38;
|
||||
const PRUint8 kRangeLao = 39;
|
||||
const PRUint8 kRangeMyanmar = 40;
|
||||
const PRUint8 kRangeCherokee = 41;
|
||||
const PRUint8 kRangeOghamRunic = 42;
|
||||
const PRUint8 kRangeMongolian = 43;
|
||||
const PRUint8 kRangeMathOperators = 44;
|
||||
const PRUint8 kRangeMiscTechnical = 45;
|
||||
const PRUint8 kRangeControlOpticalEnclose = 46;
|
||||
const PRUint8 kRangeBoxBlockGeometrics = 47;
|
||||
const PRUint8 kRangeMiscSymbols = 48;
|
||||
const PRUint8 kRangeDingbats = 49;
|
||||
const PRUint8 kRangeBraillePattern = 50;
|
||||
const PRUint8 kRangeYi = 51;
|
||||
const PRUint8 kRangeCombiningDiacriticalMarks = 52;
|
||||
const PRUint8 kRangeSpecials = 53;
|
||||
const PRUint8 kRangeSurrogate = 32;
|
||||
const PRUint8 kRangePrivate = 33;
|
||||
const PRUint8 kRangeMisc = 34;
|
||||
const PRUint8 kRangeUnassigned = 35;
|
||||
const PRUint8 kRangeSyriac = 36;
|
||||
const PRUint8 kRangeThaana = 37;
|
||||
const PRUint8 kRangeLao = 38;
|
||||
const PRUint8 kRangeMyanmar = 39;
|
||||
const PRUint8 kRangeCherokee = 40;
|
||||
const PRUint8 kRangeOghamRunic = 41;
|
||||
const PRUint8 kRangeMongolian = 42;
|
||||
const PRUint8 kRangeMathOperators = 43;
|
||||
const PRUint8 kRangeMiscTechnical = 44;
|
||||
const PRUint8 kRangeControlOpticalEnclose = 45;
|
||||
const PRUint8 kRangeBoxBlockGeometrics = 46;
|
||||
const PRUint8 kRangeMiscSymbols = 47;
|
||||
const PRUint8 kRangeDingbats = 48;
|
||||
const PRUint8 kRangeBraillePattern = 49;
|
||||
const PRUint8 kRangeYi = 50;
|
||||
const PRUint8 kRangeCombiningDiacriticalMarks = 51;
|
||||
const PRUint8 kRangeSpecials = 52;
|
||||
|
||||
const PRUint8 kRangeTableBase = 128; //values over 127 are reserved for internal use only
|
||||
const PRUint8 kRangeTertiaryTable = 145; // leave room for 16 subtable
|
||||
|
Loading…
Reference in New Issue
Block a user