Bug 1361781 - Ensure nsLayoutUtils::SetFixedPositionLayerData sets the SideBits: eSideBitsTop and eSideBitsLeft r=tnikkel
MozReview-Commit-ID: LxKOsExXGfH
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -2055,25 +2055,29 @@ nsLayoutUtils::SetFixedPositionLayerData
if (position->mOffset.GetRightUnit() != eStyleUnit_Auto) {
sides |= eSideBitsRight;
if (position->mOffset.GetLeftUnit() != eStyleUnit_Auto) {
sides |= eSideBitsLeft;
anchor.x = anchorRect.x + anchorRect.width / 2.f;
} else {
anchor.x = anchorRect.XMost();
}
+ } else if (position->mOffset.GetLeftUnit() != eStyleUnit_Auto) {
+ sides |= eSideBitsLeft;
}
if (position->mOffset.GetBottomUnit() != eStyleUnit_Auto) {
sides |= eSideBitsBottom;
if (position->mOffset.GetTopUnit() != eStyleUnit_Auto) {
sides |= eSideBitsTop;
anchor.y = anchorRect.y + anchorRect.height / 2.f;
} else {
anchor.y = anchorRect.YMost();
}
+ } else if (position->mOffset.GetTopUnit() != eStyleUnit_Auto) {
+ sides |= eSideBitsTop;
}
}
ViewID id = FrameMetrics::NULL_SCROLL_ID;
if (nsIFrame* rootScrollFrame = aPresContext->PresShell()->GetRootScrollFrame()) {
if (nsIContent* content = rootScrollFrame->GetContent()) {
id = FindOrCreateIDFor(content);
}