Index: Source/core/rendering/RenderLayerBacking.cpp |
diff --git a/Source/core/rendering/RenderLayerBacking.cpp b/Source/core/rendering/RenderLayerBacking.cpp |
index 7423b135b4a0d022eb141a62b2df1e6a896f805d..718b8b8480bac183fc9a54e0eb244a1eebf41044 100644 |
--- a/Source/core/rendering/RenderLayerBacking.cpp |
+++ b/Source/core/rendering/RenderLayerBacking.cpp |
@@ -50,6 +50,7 @@ |
#include "core/rendering/RenderEmbeddedObject.h" |
#include "core/rendering/RenderIFrame.h" |
#include "core/rendering/RenderImage.h" |
+#include "core/rendering/RenderLayer.h" // FIXME - only needed for CompositingReasons, see if we can move that to a better home. |
jamesr
2013/05/17 00:10:20
RenderLayerBacking reaches into RenderLayers all o
|
#include "core/rendering/RenderLayerCompositor.h" |
#include "core/rendering/RenderVideo.h" |
#include "core/rendering/RenderView.h" |
@@ -346,6 +347,45 @@ void RenderLayerBacking::updateAfterWidgetResize() |
} |
} |
+void RenderLayerBacking::updateCompositingReasons() |
+{ |
+ m_graphicsLayer->setCompositingReasons(m_owningLayer->compositingReasons()); |
+ |
+ if (m_ancestorClippingLayer) |
+ m_ancestorClippingLayer->setCompositingReasons(CompositingReasonLayerForClip); |
+ |
+ if (m_contentsContainmentLayer) |
+ m_contentsContainmentLayer->setCompositingReasons(CompositingReasonNone); |
+ |
+ if (m_foregroundLayer) |
+ m_foregroundLayer->setCompositingReasons(CompositingReasonsLayerForForeground); |
+ |
+ if (m_backgroundLayer) |
+ m_backgroundLayer->setCompositingReasons(CompositingReasonNone); |
+ |
+ if (m_childContainmentLayer) |
+ m_childContainmentLayer->setCompositingReasons(CompositingReasonNone); |
+ |
+ if (m_maskLayer) |
+ m_maskLayer->setCompositingReasons(CompositingReasonNone); |
+ |
+ if (m_layerForHorizontalScrollbar) |
+ m_layerForHorizontalScrollbar->setCompositingReasons(CompositingReasonLayerForScrollbar); |
+ |
+ if (m_layerForVerticalScrollbar) |
+ m_layerForVerticalScrollbar->setCompositingReasons(CompositingReasonLayerForScrollbar); |
+ |
+ if (m_layerForScrollCorner) |
+ m_layerForScrollCorner->setCompositingReasons(CompositingReasonLayerForScrollbar); |
+ |
+ // Is this the correct reason? |
+ if (m_scrollingLayer) |
+ m_scrollingLayer->setCompositingReasons(CompositingReasonLayerForDescendantClip); |
+ |
+ if (m_scrollingContentsLayer) |
+ m_scrollingContentsLayer->setCompositingReasons(CompositingReasonsLayerForScrollingContainer); |
+} |
+ |
void RenderLayerBacking::updateAfterLayout(UpdateAfterLayoutFlags flags) |
{ |
RenderLayerCompositor* layerCompositor = compositor(); |
@@ -718,6 +758,8 @@ void RenderLayerBacking::updateGraphicsLayerGeometry() |
updateDrawsContent(isSimpleContainer); |
updateAfterWidgetResize(); |
registerScrollingLayers(); |
+ |
+ updateCompositingReasons(); |
} |
void RenderLayerBacking::registerScrollingLayers() |