mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 19:55:39 +00:00
Bug 1370734 - Part 2: stylo: Prefill default font when a single generic is set; r=heycam
MozReview-Commit-ID: 4FJAZthbflg
This commit is contained in:
parent
c1a7cc7f95
commit
49c33e27a4
@ -89,23 +89,22 @@ static RWLock* sServoLangFontPrefsLock = nullptr;
|
||||
|
||||
static
|
||||
const nsFont*
|
||||
ThreadSafeGetDefaultFontHelper(const nsPresContext* aPresContext, nsIAtom* aLanguage)
|
||||
ThreadSafeGetDefaultFontHelper(const nsPresContext* aPresContext,
|
||||
nsIAtom* aLanguage, uint8_t aGenericId)
|
||||
{
|
||||
bool needsCache = false;
|
||||
const nsFont* retval;
|
||||
|
||||
{
|
||||
AutoReadLock guard(*sServoLangFontPrefsLock);
|
||||
retval = aPresContext->GetDefaultFont(kPresContext_DefaultVariableFont_ID,
|
||||
aLanguage, &needsCache);
|
||||
retval = aPresContext->GetDefaultFont(aGenericId, aLanguage, &needsCache);
|
||||
}
|
||||
if (!needsCache) {
|
||||
return retval;
|
||||
}
|
||||
{
|
||||
AutoWriteLock guard(*sServoLangFontPrefsLock);
|
||||
retval = aPresContext->GetDefaultFont(kPresContext_DefaultVariableFont_ID,
|
||||
aLanguage, nullptr);
|
||||
retval = aPresContext->GetDefaultFont(aGenericId, aLanguage, nullptr);
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -1161,7 +1160,8 @@ Gecko_nsFont_InitSystem(nsFont* aDest, int32_t aFontId,
|
||||
const nsStyleFont* aFont, RawGeckoPresContextBorrowed aPresContext)
|
||||
{
|
||||
MutexAutoLock lock(*sServoFontMetricsLock);
|
||||
const nsFont* defaultVariableFont = ThreadSafeGetDefaultFontHelper(aPresContext, aFont->mLanguage);
|
||||
const nsFont* defaultVariableFont = ThreadSafeGetDefaultFontHelper(aPresContext, aFont->mLanguage,
|
||||
kPresContext_DefaultVariableFont_ID);
|
||||
|
||||
// We have passed uninitialized memory to this function,
|
||||
// initialize it. We can't simply return an nsFont because then
|
||||
@ -2078,11 +2078,22 @@ void
|
||||
Gecko_nsStyleFont_FixupNoneGeneric(nsStyleFont* aFont,
|
||||
RawGeckoPresContextBorrowed aPresContext)
|
||||
{
|
||||
const nsFont* defaultVariableFont = ThreadSafeGetDefaultFontHelper(aPresContext, aFont->mLanguage);
|
||||
const nsFont* defaultVariableFont = ThreadSafeGetDefaultFontHelper(aPresContext, aFont->mLanguage,
|
||||
kPresContext_DefaultVariableFont_ID);
|
||||
nsRuleNode::FixupNoneGeneric(&aFont->mFont, aPresContext,
|
||||
aFont->mGenericID, defaultVariableFont);
|
||||
}
|
||||
|
||||
void
|
||||
Gecko_nsStyleFont_PrefillDefaultForGeneric(nsStyleFont* aFont,
|
||||
RawGeckoPresContextBorrowed aPresContext,
|
||||
uint8_t aGenericId)
|
||||
{
|
||||
const nsFont* defaultFont = ThreadSafeGetDefaultFontHelper(aPresContext, aFont->mLanguage,
|
||||
aGenericId);
|
||||
aFont->mFont.fontlist = defaultFont->fontlist;
|
||||
}
|
||||
|
||||
void
|
||||
Gecko_nsStyleFont_FixupMinFontSize(nsStyleFont* aFont,
|
||||
RawGeckoPresContextBorrowed aPresContext)
|
||||
|
@ -517,6 +517,9 @@ void Gecko_nsStyleFont_SetLang(nsStyleFont* font, nsIAtom* atom);
|
||||
void Gecko_nsStyleFont_CopyLangFrom(nsStyleFont* aFont, const nsStyleFont* aSource);
|
||||
void Gecko_nsStyleFont_FixupNoneGeneric(nsStyleFont* font,
|
||||
RawGeckoPresContextBorrowed pres_context);
|
||||
void Gecko_nsStyleFont_PrefillDefaultForGeneric(nsStyleFont* font,
|
||||
RawGeckoPresContextBorrowed pres_context,
|
||||
uint8_t generic_id);
|
||||
void Gecko_nsStyleFont_FixupMinFontSize(nsStyleFont* font,
|
||||
RawGeckoPresContextBorrowed pres_context);
|
||||
FontSizePrefs Gecko_GetBaseSize(nsIAtom* lang);
|
||||
|
Loading…
Reference in New Issue
Block a user