| Index: Source/core/rendering/RenderLayerScrollableArea.cpp
|
| diff --git a/Source/core/rendering/RenderLayerScrollableArea.cpp b/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| index 7b25f8ebfe27d7e4a7ec15f3f0f22d6c96fad98e..8c55ec6f375cda5191711d82896604036d9e7af4 100644
|
| --- a/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| +++ b/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| @@ -886,13 +886,24 @@ void RenderLayerScrollableArea::positionOverflowControls(const IntSize& offsetFr
|
| if (m_resizer)
|
| m_resizer->setFrameRect(resizerCornerRect(borderBox, ResizerForPointer));
|
|
|
| - // FIXME, this should eventually be removed, once we are certain that composited
|
| - // controls get correctly positioned on a compositor update. For now, conservatively
|
| - // leaving this unchanged.
|
| if (m_box->compositedLayerMapping())
|
| m_box->compositedLayerMapping()->positionOverflowControlsLayers(offsetFromRoot);
|
| }
|
|
|
| +void RenderLayerScrollableArea::positionNewlyCreatedOverflowControls()
|
| +{
|
| + if (!m_box->compositedLayerMapping()->hasUnpositionedOverflowControlsLayers())
|
| + return;
|
| +
|
| + RenderGeometryMap geometryMap(UseTransforms);
|
| + RenderView* view = m_box->view();
|
| + if (this != view->layer()->scrollableArea() && m_box->layer()->parent())
|
| + geometryMap.pushMappingsToAncestor(m_box->layer()->parent(), 0);
|
| +
|
| + LayoutPoint offsetFromRoot = LayoutPoint(geometryMap.absolutePoint(FloatPoint()));
|
| + positionOverflowControls(toIntSize(roundedIntPoint(offsetFromRoot)));
|
| +}
|
| +
|
| bool RenderLayerScrollableArea::scrollsOverflow() const
|
| {
|
| if (FrameView* frameView = m_box->view()->frameView())
|
|
|