Index: Source/core/rendering/RenderLayerClipper.cpp |
diff --git a/Source/core/rendering/RenderLayerClipper.cpp b/Source/core/rendering/RenderLayerClipper.cpp |
index 1c00bb9dc13a2b72ff19aba0dfd7307159350383..03d971832c103093849e8bd6c82b96eb7f31d781 100644 |
--- a/Source/core/rendering/RenderLayerClipper.cpp |
+++ b/Source/core/rendering/RenderLayerClipper.cpp |
@@ -44,6 +44,7 @@ |
#include "config.h" |
#include "core/rendering/RenderLayerClipper.h" |
+#include "core/frame/Settings.h" |
#include "core/rendering/RenderLayer.h" |
#include "core/rendering/RenderView.h" |
@@ -272,7 +273,8 @@ void RenderLayerClipper::calculateRects(const ClipRectsContext& context, const L |
void RenderLayerClipper::calculateClipRects(const ClipRectsContext& context, ClipRects& clipRects) const |
{ |
- if (!m_renderer.layer()->parent()) { |
+ bool rootLayerScrolls = m_renderer.document().settings() && m_renderer.document().settings()->rootLayerScrolls(); |
+ if (!m_renderer.layer()->parent() && !rootLayerScrolls) { |
// The root layer's clip rect is always infinite. |
clipRects.reset(PaintInfo::infiniteRect()); |
return; |