Chromium Code Reviews| Index: cc/trees/layer_tree_host_impl.cc |
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
| index e8d9142d8e8f160e054b87ca530c4f21ac75c7fa..65d12a8fb67243ab496ee7d43ac3021ebc1c94d4 100644 |
| --- a/cc/trees/layer_tree_host_impl.cc |
| +++ b/cc/trees/layer_tree_host_impl.cc |
| @@ -249,7 +249,6 @@ LayerTreeHostImpl::LayerTreeHostImpl( |
| zero_budget_(false), |
| device_scale_factor_(1.f), |
| overhang_ui_resource_id_(0), |
| - top_controls_layout_height_(0.f), |
| resourceless_software_draw_(false), |
| begin_impl_frame_interval_(BeginFrameArgs::DefaultInterval()), |
| animation_registrar_(AnimationRegistrar::Create()), |
| @@ -1678,11 +1677,10 @@ void LayerTreeHostImpl::UpdateInnerViewportContainerSize() { |
| if (!container_layer) |
| return; |
| - if (top_controls_manager_) |
| + if (top_controls_manager_) { |
| container_layer->SetBoundsDelta( |
| - gfx::Vector2dF(0, |
| - top_controls_layout_height_ - |
| - top_controls_manager_->content_top_offset())); |
| + gfx::Vector2dF(0, -active_tree_->top_controls_delta())); |
| + } |
| } |
| void LayerTreeHostImpl::DidLoseOutputSurface() { |
| @@ -1791,6 +1789,11 @@ void LayerTreeHostImpl::ActivateSyncTree() { |
| active_tree_->SetRootLayerScrollOffsetDelegate( |
| root_layer_scroll_offset_delegate_); |
| + |
| + top_controls_manager_->SetControlsTopOffset( |
| + active_tree_->total_top_controls_content_offset() |
| + - top_controls_manager_->top_controls_height()); |
| + |
| UpdateInnerViewportContainerSize(); |
| } else { |
| active_tree_->ProcessUIResourceRequestQueue(); |
| @@ -2146,16 +2149,6 @@ void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { |
| active_tree_->set_needs_update_draw_properties(); |
| } |
| -void LayerTreeHostImpl::SetTopControlsLayoutHeight( |
| - float top_controls_layout_height) { |
| - if (top_controls_layout_height_ == top_controls_layout_height) |
| - return; |
| - top_controls_layout_height_ = top_controls_layout_height; |
| - |
| - UpdateInnerViewportContainerSize(); |
| - SetFullRootLayerDamage(); |
| -} |
| - |
| void LayerTreeHostImpl::SetOverhangUIResource( |
| UIResourceId overhang_ui_resource_id, |
| const gfx::Size& overhang_ui_resource_size) { |
| @@ -2201,6 +2194,10 @@ const gfx::Transform& LayerTreeHostImpl::DrawTransform() const { |
| } |
| void LayerTreeHostImpl::DidChangeTopControlsPosition() { |
| + active_tree_->set_top_controls_delta( |
|
aelias_OOO_until_Jul13
2014/08/29 04:37:01
We end up holding a field with redundant informati
bokan
2014/08/29 18:02:14
sgtm
bokan
2014/09/02 18:57:16
Done.
|
| + top_controls_manager_->content_top_offset() - |
| + active_tree_->top_controls_content_offset()); |
| + |
| UpdateInnerViewportContainerSize(); |
| SetNeedsRedraw(); |
| SetNeedsAnimate(); |
| @@ -2908,6 +2905,11 @@ scoped_ptr<ScrollAndScaleSet> LayerTreeHostImpl::ProcessScrollDeltas() { |
| scroll_info->page_scale_delta = active_tree_->page_scale_delta(); |
| active_tree_->set_sent_page_scale_delta(scroll_info->page_scale_delta); |
| scroll_info->swap_promises.swap(swap_promises_for_main_thread_scroll_update_); |
| + scroll_info->top_controls_content_offset = |
| + active_tree()->total_top_controls_content_offset(); |
| + active_tree_->set_sent_top_controls_delta( |
| + scroll_info->top_controls_content_offset - |
| + active_tree()->top_controls_content_offset()); |
| return scroll_info.Pass(); |
| } |