Chromium Code Reviews| Index: cc/trees/layer_tree_impl.cc |
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
| index 041c5fea5186105c11c86371cea45ed66c3ee206..9cda9535a277934d99fe0e3cdf9993515bb1c5cd 100644 |
| --- a/cc/trees/layer_tree_impl.cc |
| +++ b/cc/trees/layer_tree_impl.cc |
| @@ -395,6 +395,29 @@ void LayerTreeImpl::DidUpdatePageScale() { |
| } |
| ForceScrollbarParameterUpdateAfterScaleChange(page_scale_layer()); |
| + |
| + HideInnerViewportScrollbarsIfNearMinimumScale(); |
| +} |
| + |
| +void LayerTreeImpl::HideInnerViewportScrollbarsIfNearMinimumScale() { |
| + if (!InnerViewportContainerLayer()) |
| + return; |
| + |
| + LayerImpl::ScrollbarSet* scrollbars = |
| + InnerViewportContainerLayer()->scrollbars(); |
| + |
| + if (!scrollbars) |
| + return; |
| + |
| + for (LayerImpl::ScrollbarSet::iterator it = scrollbars->begin(); |
| + it != scrollbars->end(); |
| + ++it) { |
| + ScrollbarLayerImplBase* scrollbar = *it; |
| + float minimum_scale_to_show_at = |
| + min_page_scale_factor() + settings().scrollbar_show_scale_threshold; |
|
aelias_OOO_until_Jul13
2015/01/27 19:35:05
I generally prefer scales to be multiplied togethe
bokan
2015/01/27 20:42:01
Done.
|
| + scrollbar->SetHideLayerAndSubtree( |
| + current_page_scale_factor() < minimum_scale_to_show_at); |
| + } |
| } |
| SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() { |
| @@ -476,6 +499,8 @@ void LayerTreeImpl::SetViewportLayersFromIds( |
| DCHECK(outer_viewport_scroll_layer_ || |
| outer_viewport_scroll_layer_id == Layer::INVALID_ID); |
| + HideInnerViewportScrollbarsIfNearMinimumScale(); |
| + |
| if (!root_layer_scroll_offset_delegate_) |
| return; |