Chromium Code Reviews| Index: cc/layers/layer.cc |
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
| index 52d9f9edb317d9afd615f4b716c6aac33c82117b..b21bf7a9979595d79a83d74620c0318340dcc348 100644 |
| --- a/cc/layers/layer.cc |
| +++ b/cc/layers/layer.cc |
| @@ -121,6 +121,11 @@ void Layer::SetLayerTreeHost(LayerTreeHost* host) { |
| layer_tree_host_->set_needs_filter_context(); |
| } |
| +void Layer::SetNeedsUpdate() { |
| + if (layer_tree_host_) |
| + layer_tree_host_->SetNeedsUpdateLayers(); |
| +} |
| + |
| void Layer::SetNeedsCommit() { |
| if (!layer_tree_host_) |
| return; |
| @@ -563,10 +568,13 @@ void Layer::SetScrollOffset(gfx::Vector2d scroll_offset) { |
| void Layer::SetScrollOffsetFromImplSide(gfx::Vector2d scroll_offset) { |
| DCHECK(IsPropertyChangeAllowed()); |
| + // This function only gets called during a begin frame, so there |
| + // is no need to call SetNeedsUpdate here. |
| DCHECK(layer_tree_host_ && layer_tree_host_->CommitRequested()); |
| if (scroll_offset_ == scroll_offset) |
| return; |
| scroll_offset_ = scroll_offset; |
| + SetNeedsPushProperties(); |
| if (!did_scroll_callback_.is_null()) |
| did_scroll_callback_.Run(); |
| // Note: didScroll() could potentially change the layer structure. |
|
danakj
2013/07/17 20:53:24
This should refer to did_scroll_callback not didSc
enne (OOO)
2013/07/18 17:36:37
Done.
|
| @@ -663,14 +671,16 @@ void Layer::SetHideLayerAndSubtree(bool hide) { |
| } |
| void Layer::SetNeedsDisplayRect(const gfx::RectF& dirty_rect) { |
| + if (!update_rect_.Contains(dirty_rect)) { |
| + SetNeedsPushProperties(); |
| + } |
| + |
| update_rect_.Union(dirty_rect); |
| needs_display_ = true; |
| - // Simply mark the contents as dirty. For non-root layers, the call to |
| - // SetNeedsCommit will schedule a fresh compositing pass. |
| - // For the root layer, SetNeedsCommit has no effect. |
| - if (DrawsContent() && !update_rect_.IsEmpty()) |
| - SetNeedsCommit(); |
| + if (DrawsContent() && !update_rect_.IsEmpty()) { |
| + SetNeedsUpdate(); |
| + } |
| } |
| bool Layer::DescendantIsFixedToContainerLayer() const { |