| Index: cc/layer_tree_host_impl.cc
|
| diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc
|
| index 22995bbe4c8ad0f02295c5c6c3ec86bc3c6ffe4d..f759a1b1916bcad310bbbc645bd89fc85607363c 100644
|
| --- a/cc/layer_tree_host_impl.cc
|
| +++ b/cc/layer_tree_host_impl.cc
|
| @@ -37,6 +37,7 @@
|
| #include "cc/software_renderer.h"
|
| #include "cc/solid_color_draw_quad.h"
|
| #include "cc/texture_uploader.h"
|
| +#include "cc/top_controls_manager.h"
|
| #include "cc/util.h"
|
| #include "ui/gfx/size_conversions.h"
|
| #include "ui/gfx/vector2d_conversions.h"
|
| @@ -136,6 +137,9 @@ LayerTreeHostImpl::LayerTreeHostImpl(const LayerTreeSettings& settings, LayerTre
|
| DCHECK(m_proxy->isImplThread());
|
| didVisibilityChange(this, m_visible);
|
|
|
| + if (settings.calculateTopControlsPosition)
|
| + m_topControlsManager = TopControlsManager::Create(this, settings.topControlsHeightPx);
|
| +
|
| // LTHI always has an active tree.
|
| m_activeTree = LayerTreeImpl::create(this);
|
| }
|
| @@ -219,6 +223,8 @@ void LayerTreeHostImpl::animate(base::TimeTicks monotonicTime, base::Time wallCl
|
| animatePageScale(monotonicTime);
|
| animateLayers(monotonicTime, wallClockTime);
|
| animateScrollbars(monotonicTime);
|
| + if (m_topControlsManager)
|
| + m_topControlsManager->Animate(monotonicTime);
|
| }
|
|
|
| void LayerTreeHostImpl::manageTiles()
|
| @@ -320,6 +326,8 @@ void LayerTreeHostImpl::updateDrawProperties()
|
| return;
|
| }
|
|
|
| + if (m_topControlsManager)
|
| + m_topControlsManager->UpdateDrawPositions();
|
| activeTree()->UpdateDrawProperties();
|
| if (pendingTree())
|
| pendingTree()->UpdateDrawProperties();
|
| @@ -772,6 +780,10 @@ CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const
|
| metadata.root_layer_size = contentSize();
|
| metadata.min_page_scale_factor = m_pinchZoomViewport.min_page_scale_factor();
|
| metadata.max_page_scale_factor = m_pinchZoomViewport.max_page_scale_factor();
|
| + if (m_topControlsManager) {
|
| + metadata.location_bar_offset = gfx::Vector2dF(0.f, m_topControlsManager->controls_top_offset());
|
| + metadata.content_offset = gfx::Vector2dF(0.f, m_topControlsManager->content_top_offset());
|
| + }
|
|
|
| return metadata;
|
| }
|
| @@ -898,6 +910,11 @@ static LayerImpl* findScrollLayerForContentLayer(LayerImpl* layerImpl)
|
| return 0;
|
| }
|
|
|
| +LayerTreeImpl* LayerTreeHostImpl::activeTree()
|
| +{
|
| + return m_activeTree.get();
|
| +}
|
| +
|
| void LayerTreeHostImpl::createPendingTree()
|
| {
|
| CHECK(!m_pendingTree);
|
| @@ -1090,6 +1107,11 @@ void LayerTreeHostImpl::updateMaxScrollOffset()
|
| pendingTree()->UpdateMaxScrollOffset();
|
| }
|
|
|
| +void LayerTreeHostImpl::setNeedsUpdateDrawProperties()
|
| +{
|
| + m_needsUpdateDrawProperties = true;
|
| +}
|
| +
|
| void LayerTreeHostImpl::setNeedsRedraw()
|
| {
|
| m_client->setNeedsRedrawOnImplThread();
|
| @@ -1105,6 +1127,9 @@ InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(gfx::Point viewp
|
| {
|
| TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBegin");
|
|
|
| + if (m_topControlsManager)
|
| + m_topControlsManager->ScrollBegin();
|
| +
|
| DCHECK(!currentlyScrollingLayer());
|
| clearCurrentlyScrollingLayer();
|
|
|
| @@ -1237,6 +1262,9 @@ bool LayerTreeHostImpl::scrollBy(const gfx::Point& viewportPoint,
|
| if (m_settings.pageScalePinchZoomEnabled && layerImpl == rootScrollLayer())
|
| viewport = &m_pinchZoomViewport;
|
| gfx::Vector2dF appliedDelta;
|
| + if (m_topControlsManager && layerImpl == rootScrollLayer())
|
| + pendingDelta = m_topControlsManager->ScrollBy(pendingDelta);
|
| +
|
| if (m_scrollDeltaIsInViewportSpace) {
|
| float scaleFromViewportToScreenSpace = m_deviceScaleFactor;
|
| appliedDelta = scrollLayerWithViewportSpaceDelta(viewport, *layerImpl, scaleFromViewportToScreenSpace, viewportPoint, pendingDelta);
|
| @@ -1281,6 +1309,8 @@ void LayerTreeHostImpl::clearCurrentlyScrollingLayer()
|
|
|
| void LayerTreeHostImpl::scrollEnd()
|
| {
|
| + if (m_topControlsManager)
|
| + m_topControlsManager->ScrollEnd();
|
| clearCurrentlyScrollingLayer();
|
| }
|
|
|
|
|