mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
Bug 936277 - Do not allow subframe displayports to get clipped away. r=tn
This commit is contained in:
parent
84c410718b
commit
3f7a45bcdc
@ -2311,6 +2311,22 @@ ScrollFrameHelper::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||||||
|
|
||||||
if (usingDisplayport) {
|
if (usingDisplayport) {
|
||||||
nsRect clip = displayPort + aBuilder->ToReferenceFrame(mOuter);
|
nsRect clip = displayPort + aBuilder->ToReferenceFrame(mOuter);
|
||||||
|
|
||||||
|
// If we are using a display port, then ignore any pre-existing clip
|
||||||
|
// passed down from our parents, and use only the clip computed here
|
||||||
|
// based on the display port. The pre-existing clip would just defeat
|
||||||
|
// the purpose of a display port which is to paint regions that are not
|
||||||
|
// currently visible so that they can be brought into view asynchronously.
|
||||||
|
// Notes:
|
||||||
|
// - The pre-existing clip state will be restored when the
|
||||||
|
// AutoSaveRestore goes out of scope, so there is no permanent change
|
||||||
|
// to this clip state.
|
||||||
|
// - We still set a clip to the scroll port further below where we
|
||||||
|
// build the scroll wrapper. This doesn't prevent us from painting
|
||||||
|
// the entire displayport, but it lets the compositor know to
|
||||||
|
// clip to the scroll port after compositing.
|
||||||
|
clipState.Clear();
|
||||||
|
|
||||||
if (mClipAllDescendants) {
|
if (mClipAllDescendants) {
|
||||||
clipState.ClipContentDescendants(clip);
|
clipState.ClipContentDescendants(clip);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user