Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/layers/scrollbar_layer_impl_base.h" | 5 #include "cc/layers/scrollbar_layer_impl_base.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include "cc/trees/effect_node.h" | 8 #include "cc/trees/effect_node.h" |
| 9 #include "cc/trees/layer_tree_impl.h" | 9 #include "cc/trees/layer_tree_impl.h" |
| 10 #include "ui/gfx/geometry/rect_conversions.h" | 10 #include "ui/gfx/geometry/rect_conversions.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 63 return false; | 63 return false; |
| 64 current_pos_ = current_pos; | 64 current_pos_ = current_pos; |
| 65 NoteLayerPropertyChanged(); | 65 NoteLayerPropertyChanged(); |
| 66 return true; | 66 return true; |
| 67 } | 67 } |
| 68 | 68 |
| 69 bool ScrollbarLayerImplBase::CanScrollOrientation() const { | 69 bool ScrollbarLayerImplBase::CanScrollOrientation() const { |
| 70 LayerImpl* scroll_layer = layer_tree_impl()->LayerById(scroll_layer_id_); | 70 LayerImpl* scroll_layer = layer_tree_impl()->LayerById(scroll_layer_id_); |
| 71 if (!scroll_layer) | 71 if (!scroll_layer) |
| 72 return false; | 72 return false; |
| 73 | |
| 74 float page_scale_factor = layer_tree_impl()->current_page_scale_factor(); | |
| 75 float device_scale_factor = layer_tree_impl()->device_scale_factor(); | |
| 76 | |
| 77 int clip_device_pixels = | |
| 78 std::ceil(clip_layer_length_ * page_scale_factor * device_scale_factor); | |
| 79 int scroll_device_pixels = | |
| 80 std::ceil(scroll_layer_length_ * page_scale_factor * device_scale_factor); | |
|
bokan
2017/04/20 22:09:49
We should floor scroll instead of ceil, see previo
| |
| 81 | |
| 73 return scroll_layer->user_scrollable(orientation()) && | 82 return scroll_layer->user_scrollable(orientation()) && |
| 74 clip_layer_length_ < scroll_layer_length_; | 83 clip_device_pixels < scroll_device_pixels; |
| 75 } | 84 } |
| 76 | 85 |
| 77 bool ScrollbarLayerImplBase::SetVerticalAdjust(float vertical_adjust) { | 86 bool ScrollbarLayerImplBase::SetVerticalAdjust(float vertical_adjust) { |
| 78 if (vertical_adjust_ == vertical_adjust) | 87 if (vertical_adjust_ == vertical_adjust) |
| 79 return false; | 88 return false; |
| 80 vertical_adjust_ = vertical_adjust; | 89 vertical_adjust_ = vertical_adjust; |
| 81 NoteLayerPropertyChanged(); | 90 NoteLayerPropertyChanged(); |
| 82 return true; | 91 return true; |
| 83 } | 92 } |
| 84 | 93 |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 230 layer_tree_impl()->AddToOpacityAnimationsMap(id(), opacity); | 239 layer_tree_impl()->AddToOpacityAnimationsMap(id(), opacity); |
| 231 | 240 |
| 232 node->opacity = opacity; | 241 node->opacity = opacity; |
| 233 node->effect_changed = true; | 242 node->effect_changed = true; |
| 234 property_trees->changed = true; | 243 property_trees->changed = true; |
| 235 property_trees->effect_tree.set_needs_update(true); | 244 property_trees->effect_tree.set_needs_update(true); |
| 236 layer_tree_impl()->set_needs_update_draw_properties(); | 245 layer_tree_impl()->set_needs_update_draw_properties(); |
| 237 } | 246 } |
| 238 | 247 |
| 239 } // namespace cc | 248 } // namespace cc |
| OLD | NEW |