Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: cc/layers/scrollbar_layer_impl_base.cc

Issue 2803853007: Ignore rounding error between clip_layer_length_ and scroll_layer_length_ (Closed)
Patch Set: add test Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 return false; 59 return false;
60 current_pos_ = current_pos; 60 current_pos_ = current_pos;
61 NoteLayerPropertyChanged(); 61 NoteLayerPropertyChanged();
62 return true; 62 return true;
63 } 63 }
64 64
65 bool ScrollbarLayerImplBase::CanScrollOrientation() const { 65 bool ScrollbarLayerImplBase::CanScrollOrientation() const {
66 LayerImpl* scroll_layer = layer_tree_impl()->LayerById(scroll_layer_id_); 66 LayerImpl* scroll_layer = layer_tree_impl()->LayerById(scroll_layer_id_);
67 if (!scroll_layer) 67 if (!scroll_layer)
68 return false; 68 return false;
69
70 float page_scale_factor = layer_tree_impl()->current_page_scale_factor();
bokan 2017/04/18 17:39:08 I don't think this is right, why'd you add page sc
71 float device_scale_factor = layer_tree_impl()->device_scale_factor();
72
73 int clip_layer_length =
74 std::ceil(clip_layer_length_ * page_scale_factor * device_scale_factor);
75 int scroll_layer_length =
76 std::ceil(scroll_layer_length_ * page_scale_factor * device_scale_factor);
77
69 return scroll_layer->user_scrollable(orientation()) && 78 return scroll_layer->user_scrollable(orientation()) &&
70 clip_layer_length_ < scroll_layer_length_; 79 clip_layer_length < scroll_layer_length;
71 } 80 }
72 81
73 bool ScrollbarLayerImplBase::SetVerticalAdjust(float vertical_adjust) { 82 bool ScrollbarLayerImplBase::SetVerticalAdjust(float vertical_adjust) {
74 if (vertical_adjust_ == vertical_adjust) 83 if (vertical_adjust_ == vertical_adjust)
75 return false; 84 return false;
76 vertical_adjust_ = vertical_adjust; 85 vertical_adjust_ = vertical_adjust;
77 NoteLayerPropertyChanged(); 86 NoteLayerPropertyChanged();
78 return true; 87 return true;
79 } 88 }
80 89
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 layer_tree_impl()->AddToOpacityAnimationsMap(id(), opacity); 235 layer_tree_impl()->AddToOpacityAnimationsMap(id(), opacity);
227 236
228 node->opacity = opacity; 237 node->opacity = opacity;
229 node->effect_changed = true; 238 node->effect_changed = true;
230 property_trees->changed = true; 239 property_trees->changed = true;
231 property_trees->effect_tree.set_needs_update(true); 240 property_trees->effect_tree.set_needs_update(true);
232 layer_tree_impl()->set_needs_update_draw_properties(); 241 layer_tree_impl()->set_needs_update_draw_properties();
233 } 242 }
234 243
235 } // namespace cc 244 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698