Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index 1014a3f8c5c16446a1752579be7d0061ceddec97..f59f0cc148368de8a0f3da5f8bbda84746322c6e 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -28,19 +28,19 @@ namespace cc { |
// This class exists to split the LayerScrollOffsetDelegate between the |
// InnerViewportScrollLayer and the OuterViewportScrollLayer in a manner |
// that never requires the embedder or LayerImpl to know about. |
-class LayerScrollOffsetDelegateProxy : public LayerScrollOffsetDelegate { |
+class LayerScrollOffsetDelegateProxy : public LayerImpl::ScrollOffsetDelegate { |
public: |
LayerScrollOffsetDelegateProxy(LayerImpl* layer, |
LayerScrollOffsetDelegate* delegate, |
LayerTreeImpl* layer_tree) |
: layer_(layer), delegate_(delegate), layer_tree_impl_(layer_tree) {} |
+ virtual ~LayerScrollOffsetDelegateProxy() {} |
gfx::Vector2dF last_set_scroll_offset() const { |
return last_set_scroll_offset_; |
} |
// LayerScrollOffsetDelegate implementation. |
- |
virtual void SetTotalScrollOffset(const gfx::Vector2dF& new_offset) OVERRIDE { |
last_set_scroll_offset_ = new_offset; |
layer_tree_impl_->UpdateScrollOffsetDelegate(); |
@@ -54,20 +54,6 @@ class LayerScrollOffsetDelegateProxy : public LayerScrollOffsetDelegate { |
return delegate_->IsExternalFlingActive(); |
} |
- // Functions below this point are never called by LayerImpl on its |
- // LayerScrollOffsetDelegate, and so are not implemented. |
- virtual void SetMaxScrollOffset(const gfx::Vector2dF&) OVERRIDE { |
- NOTIMPLEMENTED(); |
- } |
- |
- virtual void SetTotalPageScaleFactorAndLimits(float, float, float) OVERRIDE { |
- NOTIMPLEMENTED(); |
- } |
- |
- virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE { |
- NOTIMPLEMENTED(); |
- } |
- |
private: |
LayerImpl* layer_; |
LayerScrollOffsetDelegate* delegate_; |
@@ -306,7 +292,10 @@ void LayerTreeImpl::SetPageScaleFactorAndLimits(float page_scale_factor, |
page_scale_factor_ = page_scale_factor; |
if (root_layer_scroll_offset_delegate_) { |
- root_layer_scroll_offset_delegate_->SetTotalPageScaleFactorAndLimits( |
+ root_layer_scroll_offset_delegate_->UpdateRootLayerState( |
+ TotalScrollOffset(), |
+ TotalMaxScrollOffset(), |
+ ScrollableSize(), |
total_page_scale_factor(), |
this->min_page_scale_factor(), |
this->max_page_scale_factor()); |
@@ -340,7 +329,10 @@ void LayerTreeImpl::SetPageScaleDelta(float delta) { |
set_needs_update_draw_properties(); |
if (root_layer_scroll_offset_delegate_) { |
- root_layer_scroll_offset_delegate_->SetTotalPageScaleFactorAndLimits( |
+ root_layer_scroll_offset_delegate_->UpdateRootLayerState( |
+ TotalScrollOffset(), |
+ TotalMaxScrollOffset(), |
+ ScrollableSize(), |
total_page_scale_factor(), |
min_page_scale_factor(), |
max_page_scale_factor()); |
@@ -787,12 +779,10 @@ void LayerTreeImpl::SetRootLayerScrollOffsetDelegate( |
root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate; |
if (root_layer_scroll_offset_delegate_) { |
- root_layer_scroll_offset_delegate_->SetTotalScrollOffset( |
- TotalScrollOffset()); |
- root_layer_scroll_offset_delegate_->SetMaxScrollOffset( |
- TotalMaxScrollOffset()); |
- root_layer_scroll_offset_delegate_->SetScrollableSize(ScrollableSize()); |
- root_layer_scroll_offset_delegate_->SetTotalPageScaleFactorAndLimits( |
+ root_layer_scroll_offset_delegate_->UpdateRootLayerState( |
+ TotalScrollOffset(), |
+ TotalMaxScrollOffset(), |
+ ScrollableSize(), |
total_page_scale_factor(), |
min_page_scale_factor(), |
max_page_scale_factor()); |
@@ -827,9 +817,13 @@ void LayerTreeImpl::UpdateScrollOffsetDelegate() { |
if (OuterViewportScrollLayer()) |
offset += outer_viewport_scroll_delegate_proxy_->last_set_scroll_offset(); |
- root_layer_scroll_offset_delegate_->SetTotalScrollOffset(offset); |
- root_layer_scroll_offset_delegate_->SetMaxScrollOffset( |
- TotalMaxScrollOffset()); |
+ root_layer_scroll_offset_delegate_->UpdateRootLayerState( |
+ offset, |
+ TotalMaxScrollOffset(), |
+ ScrollableSize(), |
+ total_page_scale_factor(), |
+ min_page_scale_factor(), |
+ max_page_scale_factor()); |
} |
gfx::Vector2dF LayerTreeImpl::GetDelegatedScrollOffset(LayerImpl* layer) { |