зеркало из https://github.com/mozilla/gecko-dev.git
Bug 800041 - Set the correct reference frame for nsDisplayScrollLayer when the frame is transformed. r=roc
This commit is contained in:
Родитель
7722731676
Коммит
16235cf9bf
|
@ -2780,6 +2780,11 @@ nsDisplayScrollLayer::nsDisplayScrollLayer(nsDisplayListBuilder* aBuilder,
|
|||
|
||||
NS_ASSERTION(mScrolledFrame && mScrolledFrame->GetContent(),
|
||||
"Need a child frame with content");
|
||||
nsIFrame *parent = nsLayoutUtils::GetCrossDocParentFrame(aForFrame);
|
||||
NS_ASSERTION(parent, "Must have a parent!");
|
||||
mReferenceFrame =
|
||||
aBuilder->FindReferenceFrameFor(parent);
|
||||
mToReferenceFrame = aForFrame->GetOffsetToCrossDoc(mReferenceFrame);
|
||||
}
|
||||
|
||||
nsDisplayScrollLayer::nsDisplayScrollLayer(nsDisplayListBuilder* aBuilder,
|
||||
|
@ -2797,6 +2802,11 @@ nsDisplayScrollLayer::nsDisplayScrollLayer(nsDisplayListBuilder* aBuilder,
|
|||
|
||||
NS_ASSERTION(mScrolledFrame && mScrolledFrame->GetContent(),
|
||||
"Need a child frame with content");
|
||||
nsIFrame *parent = nsLayoutUtils::GetCrossDocParentFrame(aForFrame);
|
||||
NS_ASSERTION(parent, "Must have a parent!");
|
||||
mReferenceFrame =
|
||||
aBuilder->FindReferenceFrameFor(parent);
|
||||
mToReferenceFrame = aForFrame->GetOffsetToCrossDoc(mReferenceFrame);
|
||||
}
|
||||
|
||||
nsDisplayScrollLayer::nsDisplayScrollLayer(nsDisplayListBuilder* aBuilder,
|
||||
|
@ -2813,6 +2823,11 @@ nsDisplayScrollLayer::nsDisplayScrollLayer(nsDisplayListBuilder* aBuilder,
|
|||
|
||||
NS_ASSERTION(mScrolledFrame && mScrolledFrame->GetContent(),
|
||||
"Need a child frame with content");
|
||||
nsIFrame *parent = nsLayoutUtils::GetCrossDocParentFrame(aForFrame);
|
||||
NS_ASSERTION(parent, "Must have a parent!");
|
||||
mReferenceFrame =
|
||||
aBuilder->FindReferenceFrameFor(parent);
|
||||
mToReferenceFrame = aForFrame->GetOffsetToCrossDoc(mReferenceFrame);
|
||||
}
|
||||
|
||||
#ifdef NS_BUILD_REFCNT_LOGGING
|
||||
|
@ -2902,6 +2917,9 @@ nsDisplayScrollLayer::TryMerge(nsDisplayListBuilder* aBuilder,
|
|||
return false;
|
||||
}
|
||||
|
||||
NS_ASSERTION(other->mReferenceFrame == mReferenceFrame,
|
||||
"Must have the same reference frame!");
|
||||
|
||||
FrameProperties props = mScrolledFrame->Properties();
|
||||
props.Set(nsIFrame::ScrollLayerCount(),
|
||||
reinterpret_cast<void*>(GetScrollLayerCount() - 1));
|
||||
|
|
Загрузка…
Ссылка в новой задаче