Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1731)

Unified Diff: Source/core/rendering/RenderLayerScrollableArea.cpp

Issue 46163008: Revert "Re-land deferred compositing updates with fixed assumptions" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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())
« no previous file with comments | « Source/core/rendering/RenderLayerScrollableArea.h ('k') | Source/core/rendering/RenderLayerStackingNode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698