diff options
Diffstat (limited to 'WebCore/rendering/LayoutState.cpp')
| -rw-r--r-- | WebCore/rendering/LayoutState.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/WebCore/rendering/LayoutState.cpp b/WebCore/rendering/LayoutState.cpp index 883f74d..c94e77b 100644 --- a/WebCore/rendering/LayoutState.cpp +++ b/WebCore/rendering/LayoutState.cpp @@ -62,20 +62,17 @@ LayoutState::LayoutState(LayoutState* prev, RenderBox* renderer, const IntSize& m_clipped = !fixed && prev->m_clipped; if (m_clipped) m_clipRect = prev->m_clipRect; + if (renderer->hasOverflowClip()) { - int x = m_offset.width(); - int y = m_offset.height(); RenderLayer* layer = renderer->layer(); - IntRect clipRect(x, y, layer->width(), layer->height()); - clipRect.move(renderer->view()->layoutDelta()); + IntRect clipRect(toPoint(m_offset) + renderer->view()->layoutDelta(), layer->size()); if (m_clipped) m_clipRect.intersect(clipRect); else { m_clipRect = clipRect; m_clipped = true; } - layer->subtractScrolledContentOffset(x, y); - m_offset = IntSize(x, y); + m_offset -= layer->scrolledContentOffset(); } m_layoutDelta = m_next->m_layoutDelta; |
