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(); |
} |