| OLD | NEW |
| 1 | 1 |
| 2 // Copyright 2012 The Chromium Authors. All rights reserved. | 2 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 3 // Use of this source code is governed by a BSD-style license that can be | 3 // Use of this source code is governed by a BSD-style license that can be |
| 4 // found in the LICENSE file. | 4 // found in the LICENSE file. |
| 5 | 5 |
| 6 #include "cc/layers/scrollbar_layer.h" | 6 #include "cc/layers/scrollbar_layer.h" |
| 7 | 7 |
| 8 #include "base/auto_reset.h" | 8 #include "base/auto_reset.h" |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 } | 295 } |
| 296 } | 296 } |
| 297 | 297 |
| 298 bool ScrollbarLayer::Update(ResourceUpdateQueue* queue, | 298 bool ScrollbarLayer::Update(ResourceUpdateQueue* queue, |
| 299 const OcclusionTracker* occlusion) { | 299 const OcclusionTracker* occlusion) { |
| 300 track_rect_ = scrollbar_->TrackRect(); | 300 track_rect_ = scrollbar_->TrackRect(); |
| 301 | 301 |
| 302 if (layer_tree_host()->settings().solid_color_scrollbars) | 302 if (layer_tree_host()->settings().solid_color_scrollbars) |
| 303 return false; | 303 return false; |
| 304 | 304 |
| 305 bool updated = false; |
| 306 |
| 305 { | 307 { |
| 306 base::AutoReset<bool> ignore_set_needs_commit(&ignore_set_needs_commit_, | 308 base::AutoReset<bool> ignore_set_needs_commit(&ignore_set_needs_commit_, |
| 307 true); | 309 true); |
| 308 ContentsScalingLayer::Update(queue, occlusion); | 310 updated = ContentsScalingLayer::Update(queue, occlusion); |
| 309 } | 311 } |
| 310 | 312 |
| 311 dirty_rect_.Union(update_rect_); | 313 dirty_rect_.Union(update_rect_); |
| 312 if (content_bounds().IsEmpty()) | 314 if (content_bounds().IsEmpty()) |
| 313 return false; | 315 return false; |
| 314 if (visible_content_rect().IsEmpty()) | 316 if (visible_content_rect().IsEmpty()) |
| 315 return false; | 317 return false; |
| 316 | 318 |
| 317 CreateUpdaterIfNeeded(); | 319 CreateUpdaterIfNeeded(); |
| 318 | 320 |
| 319 gfx::Rect content_rect = ScrollbarLayerRectToContentRect( | 321 gfx::Rect content_rect = ScrollbarLayerRectToContentRect( |
| 320 gfx::Rect(scrollbar_->Location(), bounds())); | 322 gfx::Rect(scrollbar_->Location(), bounds())); |
| 321 bool updated = UpdatePart(track_updater_.get(), track_.get(), content_rect, | 323 updated |= UpdatePart(track_updater_.get(), track_.get(), content_rect, |
| 322 queue); | 324 queue); |
| 323 | 325 |
| 324 if (scrollbar_->HasThumb()) { | 326 if (scrollbar_->HasThumb()) { |
| 325 thumb_thickness_ = scrollbar_->ThumbThickness(); | 327 thumb_thickness_ = scrollbar_->ThumbThickness(); |
| 326 thumb_length_ = scrollbar_->ThumbLength(); | 328 thumb_length_ = scrollbar_->ThumbLength(); |
| 327 gfx::Rect origin_thumb_rect = OriginThumbRect(); | 329 gfx::Rect origin_thumb_rect = OriginThumbRect(); |
| 328 if (!origin_thumb_rect.IsEmpty()) { | 330 if (!origin_thumb_rect.IsEmpty()) { |
| 329 updated |= UpdatePart(thumb_updater_.get(), thumb_.get(), | 331 updated |= UpdatePart(thumb_updater_.get(), thumb_.get(), |
| 330 origin_thumb_rect, queue); | 332 origin_thumb_rect, queue); |
| 331 } | 333 } |
| 332 } | 334 } |
| 333 | 335 |
| 334 dirty_rect_ = gfx::RectF(); | 336 dirty_rect_ = gfx::RectF(); |
| 335 return updated; | 337 return updated; |
| 336 } | 338 } |
| 337 | 339 |
| 338 gfx::Rect ScrollbarLayer::OriginThumbRect() const { | 340 gfx::Rect ScrollbarLayer::OriginThumbRect() const { |
| 339 gfx::Size thumb_size; | 341 gfx::Size thumb_size; |
| 340 if (Orientation() == HORIZONTAL) { | 342 if (Orientation() == HORIZONTAL) { |
| 341 thumb_size = gfx::Size(scrollbar_->ThumbLength(), | 343 thumb_size = gfx::Size(scrollbar_->ThumbLength(), |
| 342 scrollbar_->ThumbThickness()); | 344 scrollbar_->ThumbThickness()); |
| 343 } else { | 345 } else { |
| 344 thumb_size = gfx::Size(scrollbar_->ThumbThickness(), | 346 thumb_size = gfx::Size(scrollbar_->ThumbThickness(), |
| 345 scrollbar_->ThumbLength()); | 347 scrollbar_->ThumbLength()); |
| 346 } | 348 } |
| 347 return ScrollbarLayerRectToContentRect(gfx::Rect(thumb_size)); | 349 return ScrollbarLayerRectToContentRect(gfx::Rect(thumb_size)); |
| 348 } | 350 } |
| 349 | 351 |
| 350 } // namespace cc | 352 } // namespace cc |
| OLD | NEW |