mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
Bug 935862 p1 - add flag for ex/ch unit usage. r=heycam
This commit is contained in:
parent
171babfad4
commit
0e183d4c4d
@ -1852,6 +1852,7 @@ nsPresContext::RebuildAllStyleData(nsChangeHint aExtraHint,
|
||||
}
|
||||
|
||||
mUsesRootEMUnits = false;
|
||||
mUsesExChUnits = false;
|
||||
mUsesViewportUnits = false;
|
||||
RebuildUserFontSet();
|
||||
RebuildCounterStyles();
|
||||
|
@ -1026,6 +1026,14 @@ public:
|
||||
mUsesRootEMUnits = aValue;
|
||||
}
|
||||
|
||||
bool UsesExChUnits() const {
|
||||
return mUsesExChUnits;
|
||||
}
|
||||
|
||||
void SetUsesExChUnits(bool aValue) {
|
||||
mUsesExChUnits = aValue;
|
||||
}
|
||||
|
||||
bool UsesViewportUnits() const {
|
||||
return mUsesViewportUnits;
|
||||
}
|
||||
@ -1348,6 +1356,8 @@ protected:
|
||||
|
||||
// Does the associated document use root-em (rem) units?
|
||||
unsigned mUsesRootEMUnits : 1;
|
||||
// Does the associated document use ex or ch units?
|
||||
unsigned mUsesExChUnits : 1;
|
||||
// Does the associated document use viewport units (vw/vh/vmin/vmax)?
|
||||
unsigned mUsesViewportUnits : 1;
|
||||
|
||||
|
@ -231,6 +231,7 @@ nsMathMLFrame::CalcLength(nsPresContext* aPresContext,
|
||||
return NSToCoordRound(aCSSValue.GetFloatValue() * (float)font->mFont.size);
|
||||
}
|
||||
else if (eCSSUnit_XHeight == unit) {
|
||||
aPresContext->SetUsesExChUnits(true);
|
||||
nsRefPtr<nsFontMetrics> fm;
|
||||
nsLayoutUtils::GetFontMetricsForStyleContext(aStyleContext,
|
||||
getter_AddRefs(fm),
|
||||
|
@ -508,12 +508,14 @@ static nscoord CalcLengthWith(const nsCSSValue& aValue,
|
||||
return ScaleCoordRound(aValue, float(aFontSize));
|
||||
}
|
||||
case eCSSUnit_XHeight: {
|
||||
aPresContext->SetUsesExChUnits(true);
|
||||
nsRefPtr<nsFontMetrics> fm =
|
||||
GetMetricsFor(aPresContext, aStyleContext, styleFont,
|
||||
aFontSize, aUseUserFontSet);
|
||||
return ScaleCoordRound(aValue, float(fm->XHeight()));
|
||||
}
|
||||
case eCSSUnit_Char: {
|
||||
aPresContext->SetUsesExChUnits(true);
|
||||
nsRefPtr<nsFontMetrics> fm =
|
||||
GetMetricsFor(aPresContext, aStyleContext, styleFont,
|
||||
aFontSize, aUseUserFontSet);
|
||||
|
Loading…
Reference in New Issue
Block a user