зеркало из https://github.com/mozilla/gecko-dev.git
Bug 936500 - Always build layers for nsDisplayScrollLayer. r=tn
APZC information is associated with layers, and having those layers suddenly disappear because they became occluded, or their displayports are off-screen has undesired effects.
This commit is contained in:
Родитель
892081b54a
Коммит
fd192955fd
|
@ -3498,6 +3498,16 @@ nsDisplayScrollLayer::BuildLayer(nsDisplayListBuilder* aBuilder,
|
|||
return layer.forget();
|
||||
}
|
||||
|
||||
bool
|
||||
nsDisplayScrollLayer::ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder)
|
||||
{
|
||||
if (nsLayoutUtils::GetDisplayPort(mScrolledFrame->GetContent(), nullptr)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return nsDisplayWrapList::ShouldBuildLayerEvenIfInvisible(aBuilder);
|
||||
}
|
||||
|
||||
bool
|
||||
nsDisplayScrollLayer::ComputeVisibility(nsDisplayListBuilder* aBuilder,
|
||||
nsRegion* aVisibleRegion,
|
||||
|
|
|
@ -2713,6 +2713,8 @@ public:
|
|||
LayerManager* aManager,
|
||||
const ContainerLayerParameters& aContainerParameters) MOZ_OVERRIDE;
|
||||
|
||||
virtual bool ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder) MOZ_OVERRIDE;
|
||||
|
||||
virtual bool ComputeVisibility(nsDisplayListBuilder* aBuilder,
|
||||
nsRegion* aVisibleRegion,
|
||||
const nsRect& aAllowVisibleRegionExpansion) MOZ_OVERRIDE;
|
||||
|
|
Загрузка…
Ссылка в новой задаче