Index: cc/layers/painted_scrollbar_layer.cc |
diff --git a/cc/layers/painted_scrollbar_layer.cc b/cc/layers/painted_scrollbar_layer.cc |
index 6bb76368c485f7fecaccf6630c22661738b1540f..2dda0718fab4fee2f056a7f97f6e85c8e02bcff9 100644 |
--- a/cc/layers/painted_scrollbar_layer.cc |
+++ b/cc/layers/painted_scrollbar_layer.cc |
@@ -28,16 +28,17 @@ scoped_ptr<LayerImpl> PaintedScrollbarLayer::CreateLayerImpl( |
scoped_refptr<PaintedScrollbarLayer> PaintedScrollbarLayer::Create( |
scoped_ptr<Scrollbar> scrollbar, |
- int scroll_layer_id) { |
+ Layer* scroll_layer) { |
return make_scoped_refptr( |
- new PaintedScrollbarLayer(scrollbar.Pass(), scroll_layer_id)); |
+ new PaintedScrollbarLayer(scrollbar.Pass(), scroll_layer)); |
} |
PaintedScrollbarLayer::PaintedScrollbarLayer( |
scoped_ptr<Scrollbar> scrollbar, |
- int scroll_layer_id) |
+ Layer* scroll_layer) |
: scrollbar_(scrollbar.Pass()), |
- scroll_layer_id_(scroll_layer_id), |
+ scroll_layer_(scroll_layer), |
+ clip_layer_(NULL), |
thumb_thickness_(scrollbar_->ThumbThickness()), |
thumb_length_(scrollbar_->ThumbLength()), |
is_overlay_(scrollbar_->IsOverlay()), |
@@ -49,14 +50,22 @@ PaintedScrollbarLayer::PaintedScrollbarLayer( |
PaintedScrollbarLayer::~PaintedScrollbarLayer() {} |
int PaintedScrollbarLayer::ScrollLayerId() const { |
- return scroll_layer_id_; |
+ return scroll_layer_->id(); |
} |
-void PaintedScrollbarLayer::SetScrollLayerId(int id) { |
- if (id == scroll_layer_id_) |
+void PaintedScrollbarLayer::SetScrollLayer(scoped_refptr<Layer> layer) { |
+ if (layer == scroll_layer_) |
return; |
- scroll_layer_id_ = id; |
+ scroll_layer_ = layer; |
+ SetNeedsFullTreeSync(); |
+} |
+ |
+void PaintedScrollbarLayer::SetClipLayer(scoped_refptr<Layer> layer) { |
+ if (layer == clip_layer_) |
+ return; |
+ |
+ clip_layer_ = layer; |
SetNeedsFullTreeSync(); |
} |
@@ -112,6 +121,11 @@ void PaintedScrollbarLayer::PushPropertiesTo(LayerImpl* layer) { |
PaintedScrollbarLayerImpl* scrollbar_layer = |
static_cast<PaintedScrollbarLayerImpl*>(layer); |
+ scrollbar_layer->SetScrollLayerById(scroll_layer_ ? scroll_layer_->id() |
+ : Layer::INVALID_ID); |
+ scrollbar_layer->SetClipLayerById(clip_layer_ ? clip_layer_->id() |
+ : Layer::INVALID_ID); |
+ |
scrollbar_layer->SetThumbThickness(thumb_thickness_); |
scrollbar_layer->SetThumbLength(thumb_length_); |
if (orientation() == HORIZONTAL) { |