Index: cc/layers/layer_impl.h |
diff --git a/cc/layers/layer_impl.h b/cc/layers/layer_impl.h |
index ec2977b2557f02732117941c4d16e2679fcbd8d9..66fa84b4e24de51176166520fb8239f6b445c362 100644 |
--- a/cc/layers/layer_impl.h |
+++ b/cc/layers/layer_impl.h |
@@ -367,10 +367,8 @@ |
const gfx::Vector2dF& scroll_delta); |
gfx::Vector2d scroll_offset() const { return scroll_offset_; } |
- gfx::Vector2d MaxScrollOffset() const; |
- gfx::Vector2dF ClampScrollToMaxScrollOffset(); |
- void SetScrollbarPosition(ScrollbarLayerImplBase* scrollbar_layer, |
- LayerImpl* scrollbar_clip_layer) const; |
+ void SetMaxScrollOffset(gfx::Vector2d max_scroll_offset); |
+ gfx::Vector2d max_scroll_offset() const { return max_scroll_offset_; } |
void SetScrollDelta(const gfx::Vector2dF& scroll_delta); |
gfx::Vector2dF ScrollDelta() const; |
@@ -384,8 +382,8 @@ |
// initial scroll |
gfx::Vector2dF ScrollBy(const gfx::Vector2dF& scroll); |
- void SetScrollClipLayer(int scroll_clip_layer_id); |
- bool scrollable() const { return !!scroll_clip_layer_; } |
+ void SetScrollable(bool scrollable) { scrollable_ = scrollable; } |
+ bool scrollable() const { return scrollable_; } |
void set_user_scrollable_horizontal(bool scrollable) { |
user_scrollable_horizontal_ = scrollable; |
@@ -479,15 +477,14 @@ |
return scrollbar_animation_controller_.get(); |
} |
- typedef std::set<ScrollbarLayerImplBase*> ScrollbarSet; |
- ScrollbarSet* scrollbars() { return scrollbars_.get(); } |
- void ClearScrollbars(); |
- void AddScrollbar(ScrollbarLayerImplBase* layer); |
- void RemoveScrollbar(ScrollbarLayerImplBase* layer); |
- bool HasScrollbar(ScrollbarOrientation orientation) const; |
- void ScrollbarParametersDidChange(); |
- int clip_height() { |
- return scroll_clip_layer_ ? scroll_clip_layer_->bounds().height() : 0; |
+ void SetHorizontalScrollbarLayer(ScrollbarLayerImplBase* scrollbar_layer); |
+ ScrollbarLayerImplBase* horizontal_scrollbar_layer() { |
+ return horizontal_scrollbar_layer_; |
+ } |
+ |
+ void SetVerticalScrollbarLayer(ScrollbarLayerImplBase* scrollbar_layer); |
+ ScrollbarLayerImplBase* vertical_scrollbar_layer() { |
+ return vertical_scrollbar_layer_; |
} |
gfx::Rect LayerRectToContentRect(const gfx::RectF& layer_rect) const; |
@@ -545,6 +542,8 @@ |
private: |
void NoteLayerPropertyChangedForDescendantsInternal(); |
+ void UpdateScrollbarPositions(); |
+ |
virtual const char* LayerTypeAsString() const; |
// Properties internal to LayerImpl |
@@ -577,7 +576,6 @@ |
gfx::Size bounds_; |
gfx::Vector2d scroll_offset_; |
LayerScrollOffsetDelegate* scroll_offset_delegate_; |
- LayerImpl* scroll_clip_layer_; |
bool scrollable_ : 1; |
bool should_scroll_on_main_thread_ : 1; |
bool have_wheel_event_handlers_ : 1; |
@@ -620,6 +618,7 @@ |
gfx::Vector2dF scroll_delta_; |
gfx::Vector2d sent_scroll_delta_; |
+ gfx::Vector2d max_scroll_offset_; |
gfx::Vector2dF last_scroll_offset_; |
// The global depth value of the center of the layer. This value is used |
@@ -655,7 +654,10 @@ |
// Manages scrollbars for this layer |
scoped_ptr<ScrollbarAnimationController> scrollbar_animation_controller_; |
- scoped_ptr<ScrollbarSet> scrollbars_; |
+ // Weak pointers to this layer's scrollbars, if it has them. Updated during |
+ // tree synchronization. |
+ ScrollbarLayerImplBase* horizontal_scrollbar_layer_; |
+ ScrollbarLayerImplBase* vertical_scrollbar_layer_; |
ScopedPtrVector<CopyOutputRequest> copy_requests_; |