зеркало из https://github.com/mozilla/gecko-dev.git
Bug 78087. Propagate the canvas background to be the background of the entire viewport so it z-orders correctly in the viewport's stacking context. r+sr=dbaron
This commit is contained in:
Родитель
5dedb3845c
Коммит
9acb9492ec
|
@ -1392,7 +1392,8 @@ nsGfxScrollFrameInner::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
nsRect clip = frameClip + aBuilder->ToReferenceFrame(mOuter);
|
nsRect clip = frameClip + aBuilder->ToReferenceFrame(mOuter);
|
||||||
// mScrolledFrame may have given us a background, e.g., the scrolled canvas
|
// mScrolledFrame may have given us a background, e.g., the scrolled canvas
|
||||||
// frame below the viewport. If so, we want it to be clipped.
|
// frame below the viewport. If so, we want it to be clipped. We also want
|
||||||
|
// to end up on our BorderBackground list.
|
||||||
// If we are the viewport scrollframe, then clip all our descendants (to ensure
|
// If we are the viewport scrollframe, then clip all our descendants (to ensure
|
||||||
// that fixed-pos elements get clipped by us).
|
// that fixed-pos elements get clipped by us).
|
||||||
rv = mOuter->OverflowClip(aBuilder, set, aLists, clip, PR_TRUE, mIsRoot);
|
rv = mOuter->OverflowClip(aBuilder, set, aLists, clip, PR_TRUE, mIsRoot);
|
||||||
|
|
|
@ -89,10 +89,12 @@ ViewportFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
||||||
// that display list construction is guaranteed to recurse into their
|
// that display list construction is guaranteed to recurse into their
|
||||||
// ancestors.
|
// ancestors.
|
||||||
MarkOutOfFlowChildrenForDisplayList(mFixedContainer.GetFirstChild(), aDirtyRect);
|
MarkOutOfFlowChildrenForDisplayList(mFixedContainer.GetFirstChild(), aDirtyRect);
|
||||||
// Put the regular child in a pseudo-stack.
|
nsIFrame* kid = mFrames.FirstChild();
|
||||||
nsresult rv =
|
nsresult rv = NS_OK;
|
||||||
BuildDisplayListForNonBlockChildren(aBuilder, aDirtyRect, aLists,
|
if (kid) {
|
||||||
DISPLAY_CHILD_FORCE_PSEUDO_STACKING_CONTEXT);
|
// make the kid's BorderBackground our own.
|
||||||
|
rv = BuildDisplayListForChild(aBuilder, kid, aDirtyRect, aLists);
|
||||||
|
}
|
||||||
UnmarkOutOfFlowChildrenForDisplayList(mFixedContainer.GetFirstChild());
|
UnmarkOutOfFlowChildrenForDisplayList(mFixedContainer.GetFirstChild());
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче