| Index: Source/core/rendering/LayoutState.cpp
|
| diff --git a/Source/core/rendering/LayoutState.cpp b/Source/core/rendering/LayoutState.cpp
|
| index 2e682604835a2d4fc050ba9b6abb89136d2a4773..7de0f292751087a61dfa3001ed04024ad77c65b1 100644
|
| --- a/Source/core/rendering/LayoutState.cpp
|
| +++ b/Source/core/rendering/LayoutState.cpp
|
| @@ -122,6 +122,33 @@ LayoutState::LayoutState(RenderBox& renderer, const LayoutSize& offset, LayoutUn
|
| // FIXME: <http://bugs.webkit.org/show_bug.cgi?id=13443> Apply control clip if present.
|
| }
|
|
|
| +LayoutState::LayoutState(RenderInline& renderer)
|
| + : m_next(renderer.view()->layoutState())
|
| + , m_renderer(renderer)
|
| +{
|
| + ASSERT(m_next);
|
| +
|
| + renderer.view()->pushLayoutState(*this);
|
| + m_cachedOffsetsEnabled = m_next->m_cachedOffsetsEnabled && renderer.supportsLayoutStateCachedOffsets();
|
| +
|
| + m_paintOffset = m_next->m_paintOffset;
|
| + // Handle relative positioned inline.
|
| + if (renderer.style()->hasInFlowPosition() && renderer.layer())
|
| + m_paintOffset += renderer.layer()->offsetForInFlowPosition();
|
| +
|
| + // RenderInline can't be out-of-flow positioned.
|
| +
|
| + // The following can't apply to RenderInline so we just propagate them.
|
| + m_clipped = m_next->m_clipped;
|
| + m_clipRect = m_next->m_clipRect;
|
| +
|
| + m_pageLogicalHeight = m_next->m_pageLogicalHeight;
|
| + m_pageLogicalHeightChanged = m_next->m_pageLogicalHeightChanged;
|
| + m_pageOffset = m_next->m_pageOffset;
|
| +
|
| + m_columnInfo = m_next->m_columnInfo;
|
| +}
|
| +
|
| inline static bool shouldDisableLayoutStateForSubtree(RenderObject& renderer)
|
| {
|
| RenderObject* object = &renderer;
|
|
|