Closed Bug 67716 Opened 25 years ago Closed 25 years ago

X font should recognize font subsetted (plane'd) groups

Categories

(Core :: Layout, defect)

All
Linux
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: bstell, Assigned: bstell)

Details

cns11643-1 cns11643-2 cns11643-3 cns11643-4 cns11643-5 ... nsFontMetricsGTK::FindGenericFont 3016 nsFontGTK* 3017 nsFontMetricsGTK::FindGenericFont(PRUnichar aChar) 3018 { 3019 if (mTriedAllGenerics) { 3020 return nsnull; 3021 } 3022 nsCAutoString prefix("font.name."); 3023 prefix.Append(*mGeneric); 3024 if (mLangGroup) { 3025 nsCAutoString pref = prefix; 3026 pref.Append(char('.')); 3027 const PRUnichar* langGroup = nsnull; 3028 mLangGroup->GetUnicode(&langGroup); 3029 pref.AppendWithConversion(langGroup); 3030 char* value = nsnull; 3031 gPref->CopyCharPref(pref.GetBuffer(), &value); 3032 nsCAutoString str; 3033 nsFontGTK* font; 3034 if (value) { 3035 str = value; 3036 nsMemory::Free(value); 3037 value = nsnull; 3038 font = TryNode(&str, aChar); 3039 if (font && font->SupportsChar(aChar)) { 3040 return font; 3041 } not in primary plane so try all the other planes 3042 } 3043 value = nsnull;
font vendors are subsetting or plane'ing the fonts; eg: cns11643-1, cns11643-2, ... The font display code needs to recognize and collect these subsets so characters in the other planes are displayed with the subset from this font instead of just a fallback from the total list of fonts. For example: if a user specifies "sun-ming-cns11643-1" as the font for traditional Chinese and the document has chars that are in plane 2 they should use "sun-ming-cns11643-2" before looking for a fallback. we probably want to have a list of the planes in a font that each nsFontNode can point to so chars in other planes can find the related font quickly.
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.