Bug 526394. Part 36: Store the overflow area explicitly whenever it's not exactly equal to the border-box; if they're both empty but with different dimensions or position, we should still store the explicit overflow area. Also fix test_offsets to compute the expected scrolled area correctly. r=mats

This commit is contained in:
Robert O'Callahan
2010-01-12 10:45:21 +13:00
parent 1aaf60f80a
commit b52123a8ab
2 changed files with 7 additions and 6 deletions

View File

@@ -5589,7 +5589,7 @@ nsIFrame::FinishAndStoreOverflow(nsRect* aOverflowArea, nsSize aNewSize)
if (presContext->GetTheme()->
GetWidgetOverflow(presContext->DeviceContext(), this,
disp->mAppearance, &r)) {
aOverflowArea->UnionRect(*aOverflowArea, r);
aOverflowArea->UnionRectIncludeEmpty(*aOverflowArea, r);
}
}
@@ -5633,8 +5633,8 @@ nsIFrame::FinishAndStoreOverflow(nsRect* aOverflowArea, nsSize aNewSize)
}
PRBool overflowChanged;
if (*aOverflowArea != nsRect(nsPoint(0, 0), aNewSize)) {
overflowChanged = *aOverflowArea != GetOverflowRect();
if (!aOverflowArea->IsExactEqual(nsRect(nsPoint(0, 0), aNewSize))) {
overflowChanged = !aOverflowArea->IsExactEqual(GetOverflowRect());
SetOverflowRect(*aOverflowArea);
}
else {