OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/trees/layer_tree_impl.h" | 5 #include "cc/trees/layer_tree_impl.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 set_needs_update_draw_properties(); | 388 set_needs_update_draw_properties(); |
389 | 389 |
390 if (root_layer_scroll_offset_delegate_) { | 390 if (root_layer_scroll_offset_delegate_) { |
391 root_layer_scroll_offset_delegate_->UpdateRootLayerState( | 391 root_layer_scroll_offset_delegate_->UpdateRootLayerState( |
392 TotalScrollOffset(), TotalMaxScrollOffset(), ScrollableSize(), | 392 TotalScrollOffset(), TotalMaxScrollOffset(), ScrollableSize(), |
393 current_page_scale_factor(), min_page_scale_factor_, | 393 current_page_scale_factor(), min_page_scale_factor_, |
394 max_page_scale_factor_); | 394 max_page_scale_factor_); |
395 } | 395 } |
396 | 396 |
397 ForceScrollbarParameterUpdateAfterScaleChange(page_scale_layer()); | 397 ForceScrollbarParameterUpdateAfterScaleChange(page_scale_layer()); |
| 398 |
| 399 HideInnerViewportScrollbarsIfNearMinimumScale(); |
| 400 } |
| 401 |
| 402 void LayerTreeImpl::HideInnerViewportScrollbarsIfNearMinimumScale() { |
| 403 if (!InnerViewportContainerLayer()) |
| 404 return; |
| 405 |
| 406 LayerImpl::ScrollbarSet* scrollbars = |
| 407 InnerViewportContainerLayer()->scrollbars(); |
| 408 |
| 409 if (!scrollbars) |
| 410 return; |
| 411 |
| 412 for (LayerImpl::ScrollbarSet::iterator it = scrollbars->begin(); |
| 413 it != scrollbars->end(); |
| 414 ++it) { |
| 415 ScrollbarLayerImplBase* scrollbar = *it; |
| 416 float minimum_scale_to_show_at = |
| 417 min_page_scale_factor() * settings().scrollbar_show_scale_threshold; |
| 418 scrollbar->SetHideLayerAndSubtree( |
| 419 current_page_scale_factor() < minimum_scale_to_show_at); |
| 420 } |
398 } | 421 } |
399 | 422 |
400 SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() { | 423 SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() { |
401 return page_scale_factor_.get(); | 424 return page_scale_factor_.get(); |
402 } | 425 } |
403 | 426 |
404 const SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() const { | 427 const SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() const { |
405 return page_scale_factor_.get(); | 428 return page_scale_factor_.get(); |
406 } | 429 } |
407 | 430 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 | 492 |
470 inner_viewport_scroll_layer_ = | 493 inner_viewport_scroll_layer_ = |
471 LayerById(inner_viewport_scroll_layer_id); | 494 LayerById(inner_viewport_scroll_layer_id); |
472 DCHECK(inner_viewport_scroll_layer_); | 495 DCHECK(inner_viewport_scroll_layer_); |
473 | 496 |
474 outer_viewport_scroll_layer_ = | 497 outer_viewport_scroll_layer_ = |
475 LayerById(outer_viewport_scroll_layer_id); | 498 LayerById(outer_viewport_scroll_layer_id); |
476 DCHECK(outer_viewport_scroll_layer_ || | 499 DCHECK(outer_viewport_scroll_layer_ || |
477 outer_viewport_scroll_layer_id == Layer::INVALID_ID); | 500 outer_viewport_scroll_layer_id == Layer::INVALID_ID); |
478 | 501 |
| 502 HideInnerViewportScrollbarsIfNearMinimumScale(); |
| 503 |
479 if (!root_layer_scroll_offset_delegate_) | 504 if (!root_layer_scroll_offset_delegate_) |
480 return; | 505 return; |
481 | 506 |
482 inner_viewport_scroll_delegate_proxy_ = make_scoped_ptr( | 507 inner_viewport_scroll_delegate_proxy_ = make_scoped_ptr( |
483 new LayerScrollOffsetDelegateProxy(inner_viewport_scroll_layer_, | 508 new LayerScrollOffsetDelegateProxy(inner_viewport_scroll_layer_, |
484 root_layer_scroll_offset_delegate_, | 509 root_layer_scroll_offset_delegate_, |
485 this)); | 510 this)); |
486 | 511 |
487 if (outer_viewport_scroll_layer_) | 512 if (outer_viewport_scroll_layer_) |
488 outer_viewport_scroll_delegate_proxy_ = make_scoped_ptr( | 513 outer_viewport_scroll_delegate_proxy_ = make_scoped_ptr( |
(...skipping 1034 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1523 scoped_ptr<PendingPageScaleAnimation> pending_animation) { | 1548 scoped_ptr<PendingPageScaleAnimation> pending_animation) { |
1524 pending_page_scale_animation_ = pending_animation.Pass(); | 1549 pending_page_scale_animation_ = pending_animation.Pass(); |
1525 } | 1550 } |
1526 | 1551 |
1527 scoped_ptr<PendingPageScaleAnimation> | 1552 scoped_ptr<PendingPageScaleAnimation> |
1528 LayerTreeImpl::TakePendingPageScaleAnimation() { | 1553 LayerTreeImpl::TakePendingPageScaleAnimation() { |
1529 return pending_page_scale_animation_.Pass(); | 1554 return pending_page_scale_animation_.Pass(); |
1530 } | 1555 } |
1531 | 1556 |
1532 } // namespace cc | 1557 } // namespace cc |
OLD | NEW |