зеркало из https://github.com/mozilla/gecko-dev.git
Backout f7a499183de0, 5dfd8d0a0ea6, dec09b1a21e4 (bug 1042772) for reftest failure on CLOSED TREE
This commit is contained in:
Родитель
602a7e1a25
Коммит
2dc2f9e427
|
@ -3005,8 +3005,7 @@ nsDisplayWrapList::nsDisplayWrapList(nsDisplayListBuilder* aBuilder,
|
|||
mToReferenceFrame = i->ToReferenceFrame();
|
||||
}
|
||||
}
|
||||
mVisibleRect = aBuilder->GetDirtyRect() +
|
||||
aBuilder->GetCurrentFrameOffsetToReferenceFrame();
|
||||
mVisibleRect = aBuilder->GetDirtyRect() + mToReferenceFrame;
|
||||
}
|
||||
|
||||
nsDisplayWrapList::nsDisplayWrapList(nsDisplayListBuilder* aBuilder,
|
||||
|
@ -3035,8 +3034,7 @@ nsDisplayWrapList::nsDisplayWrapList(nsDisplayListBuilder* aBuilder,
|
|||
mToReferenceFrame = aItem->ToReferenceFrame();
|
||||
}
|
||||
}
|
||||
mVisibleRect = aBuilder->GetDirtyRect() +
|
||||
aBuilder->GetCurrentFrameOffsetToReferenceFrame();
|
||||
mVisibleRect = aBuilder->GetDirtyRect() + mToReferenceFrame;
|
||||
}
|
||||
|
||||
nsDisplayWrapList::~nsDisplayWrapList() {
|
||||
|
|
|
@ -533,10 +533,6 @@ public:
|
|||
void SetDirtyRect(const nsRect& aRect) {
|
||||
mBuilder->mDirtyRect = aRect;
|
||||
}
|
||||
void SetReferenceFrameAndCurrentOffset(const nsIFrame* aFrame, const nsPoint& aOffset) {
|
||||
mBuilder->mCurrentReferenceFrame = aFrame;
|
||||
mBuilder->mCurrentOffsetToReferenceFrame = aOffset;
|
||||
}
|
||||
~AutoBuildingDisplayList() {
|
||||
mBuilder->mCurrentFrame = mPrevFrame;
|
||||
mBuilder->mCurrentReferenceFrame = mPrevReferenceFrame;
|
||||
|
|
|
@ -1922,8 +1922,7 @@ nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder* aBuilder,
|
|||
AutoSaveRestoreBlendMode autoRestoreBlendMode(*aBuilder);
|
||||
aBuilder->SetContainsBlendModes(BlendModeSet());
|
||||
|
||||
const nsIFrame* outerReferenceFrame = aBuilder->GetCurrentReferenceFrame();
|
||||
nsPoint offsetToOuterReferenceFrame = GetOffsetToCrossDoc(outerReferenceFrame);
|
||||
nsPoint offsetToReferenceFrame = aBuilder->ToReferenceFrame(this);
|
||||
|
||||
if (isTransformed) {
|
||||
const nsRect overflow = GetVisualOverflowRectRelativeToSelf();
|
||||
|
@ -1935,9 +1934,10 @@ nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder* aBuilder,
|
|||
return;
|
||||
}
|
||||
|
||||
dirtyRect += offsetToReferenceFrame;
|
||||
nsRect untransformedDirtyRect;
|
||||
if (nsDisplayTransform::UntransformRect(dirtyRect, overflow, this,
|
||||
nsPoint(0,0), &untransformedDirtyRect)) {
|
||||
offsetToReferenceFrame, &untransformedDirtyRect)) {
|
||||
dirtyRect = untransformedDirtyRect;
|
||||
} else {
|
||||
NS_WARNING("Unable to untransform dirty rect!");
|
||||
|
@ -2105,11 +2105,7 @@ nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder* aBuilder,
|
|||
clipState.Restore();
|
||||
// Revert to the dirtyrect coming in from the parent, without our transform
|
||||
// taken into account.
|
||||
buildingDisplayList.SetDirtyRect(aDirtyRect);
|
||||
// Revert to the outer reference frame and offset because all display
|
||||
// items we create from now on are outside the transform.
|
||||
buildingDisplayList.SetReferenceFrameAndCurrentOffset(outerReferenceFrame,
|
||||
offsetToOuterReferenceFrame);
|
||||
buildingDisplayList.SetDirtyRect(aDirtyRect + offsetToReferenceFrame);
|
||||
|
||||
if (Preserves3DChildren()) {
|
||||
WrapPreserve3DList(this, aBuilder, &resultList);
|
||||
|
|
Загрузка…
Ссылка в новой задаче