mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-03 14:28:39 +09:00
Issue #2522 - Part 2: Implement support for logical viewport units
This commit is contained in:
parent
5c06335c5b
commit
2ba31f4e97
4 changed files with 78 additions and 1 deletions
|
|
@ -541,6 +541,40 @@ static nscoord CalcLengthWith(const nsCSSValue& aValue,
|
|||
nscoord viewportMax = max(vuScale.width, vuScale.height);
|
||||
return ScaleViewportCoordTrunc(aValue, viewportMax);
|
||||
}
|
||||
case eCSSUnit_ViewportBlock:
|
||||
case eCSSUnit_SmallViewportBlock:
|
||||
case eCSSUnit_LargeViewportBlock:
|
||||
case eCSSUnit_DynamicViewportBlock: {
|
||||
// Assume non-vertical writing mode if the style context is unavailable.
|
||||
if (aStyleContext) {
|
||||
WritingMode wm(aStyleContext);
|
||||
bool vertical = wm.IsVertical();
|
||||
aConditions.SetWritingModeDependency(wm.GetBits());
|
||||
if (vertical) {
|
||||
nscoord viewportWidth = CalcViewportUnitsScale(aPresContext).width;
|
||||
return ScaleViewportCoordTrunc(aValue, viewportWidth);
|
||||
}
|
||||
}
|
||||
nscoord viewportHeight = CalcViewportUnitsScale(aPresContext).height;
|
||||
return ScaleViewportCoordTrunc(aValue, viewportHeight);
|
||||
}
|
||||
case eCSSUnit_ViewportInline:
|
||||
case eCSSUnit_SmallViewportInline:
|
||||
case eCSSUnit_LargeViewportInline:
|
||||
case eCSSUnit_DynamicViewportInline: {
|
||||
// Assume non-vertical writing mode if the style context is unavailable.
|
||||
if (aStyleContext) {
|
||||
WritingMode wm(aStyleContext);
|
||||
bool vertical = wm.IsVertical();
|
||||
aConditions.SetWritingModeDependency(wm.GetBits());
|
||||
if (vertical) {
|
||||
nscoord viewportHeight = CalcViewportUnitsScale(aPresContext).height;
|
||||
return ScaleViewportCoordTrunc(aValue, viewportHeight);
|
||||
}
|
||||
}
|
||||
nscoord viewportWidth = CalcViewportUnitsScale(aPresContext).width;
|
||||
return ScaleViewportCoordTrunc(aValue, viewportWidth);
|
||||
}
|
||||
// While we could deal with 'rem' units correctly by simply not
|
||||
// caching any data that uses them in the rule tree, it's valuable
|
||||
// to store them in the rule tree (for faster dynamic changes of
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue