Bug 1413666 - Fix off-by-one error in sticky positioning code. r?botond
MozReview-Commit-ID: J33lrH03HyA
--- a/layout/generic/StickyScrollContainer.cpp
+++ b/layout/generic/StickyScrollContainer.cpp
@@ -280,28 +280,28 @@ StickyScrollContainer::GetScrollRanges(n
ComputeStickyLimits(firstCont, &stick, &contain);
aOuter->SetRect(nscoord_MIN/2, nscoord_MIN/2, nscoord_MAX, nscoord_MAX);
aInner->SetRect(nscoord_MIN/2, nscoord_MIN/2, nscoord_MAX, nscoord_MAX);
const nsPoint normalPosition = firstCont->GetNormalPosition();
// Bottom and top
- if (stick.YMost() != nscoord_MAX/2) {
+ if (stick.YMost() != (nscoord_MAX + (nscoord_MIN/2))) {
aOuter->SetTopEdge(contain.y - stick.YMost());
aInner->SetTopEdge(normalPosition.y - stick.YMost());
}
if (stick.y != nscoord_MIN/2) {
aInner->SetBottomEdge(normalPosition.y - stick.y);
aOuter->SetBottomEdge(contain.YMost() - stick.y);
}
// Right and left
- if (stick.XMost() != nscoord_MAX/2) {
+ if (stick.XMost() != (nscoord_MAX + (nscoord_MIN/2))) {
aOuter->SetLeftEdge(contain.x - stick.XMost());
aInner->SetLeftEdge(normalPosition.x - stick.XMost());
}
if (stick.x != nscoord_MIN/2) {
aInner->SetRightEdge(normalPosition.x - stick.x);
aOuter->SetRightEdge(contain.XMost() - stick.x);
}