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

Unified Diff: cc/layers/scrollbar_layer_impl.cc

Issue 17550008: Make IsSolidColor() a property on CC scrollbar layers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: cc/layers/scrollbar_layer_impl.cc
diff --git a/cc/layers/scrollbar_layer_impl.cc b/cc/layers/scrollbar_layer_impl.cc
index b8da4b65cfd362c441fae3b0ddc35dd306d2f4e9..029da1183f6fb146ef25f4638f1da17b8d503614 100644
--- a/cc/layers/scrollbar_layer_impl.cc
+++ b/cc/layers/scrollbar_layer_impl.cc
@@ -18,16 +18,19 @@ namespace cc {
scoped_ptr<ScrollbarLayerImpl> ScrollbarLayerImpl::Create(
LayerTreeImpl* tree_impl,
int id,
- ScrollbarOrientation orientation) {
+ ScrollbarOrientation orientation,
+ bool is_solid_color) {
return make_scoped_ptr(new ScrollbarLayerImpl(tree_impl,
id,
- orientation));
+ orientation,
+ is_solid_color));
}
ScrollbarLayerImpl::ScrollbarLayerImpl(
LayerTreeImpl* tree_impl,
int id,
- ScrollbarOrientation orientation)
+ ScrollbarOrientation orientation,
+ bool is_solid_color)
: LayerImpl(tree_impl, id),
track_resource_id_(0),
thumb_resource_id_(0),
@@ -45,7 +48,9 @@ ScrollbarLayerImpl::ScrollbarLayerImpl(
is_scroll_view_scrollbar_(false),
enabled_(false),
is_custom_scrollbar_(false),
- is_overlay_scrollbar_(false) {}
+ is_overlay_scrollbar_(false),
+ is_solid_color_(is_solid_color) {
+}
ScrollbarLayerImpl::~ScrollbarLayerImpl() {}
@@ -55,9 +60,8 @@ ScrollbarLayerImpl* ScrollbarLayerImpl::ToScrollbarLayer() {
scoped_ptr<LayerImpl> ScrollbarLayerImpl::CreateLayerImpl(
LayerTreeImpl* tree_impl) {
- return ScrollbarLayerImpl::Create(tree_impl,
- id(),
- orientation_).PassAs<LayerImpl>();
+ return ScrollbarLayerImpl::Create(
+ tree_impl, id(), orientation_, is_solid_color_).PassAs<LayerImpl>();
}
void ScrollbarLayerImpl::PushPropertiesTo(LayerImpl* layer) {
@@ -65,6 +69,8 @@ void ScrollbarLayerImpl::PushPropertiesTo(LayerImpl* layer) {
ScrollbarLayerImpl* scrollbar_layer = static_cast<ScrollbarLayerImpl*>(layer);
+ scrollbar_layer->set_is_solid_color(is_solid_color_);
+
scrollbar_layer->set_thumb_thickness(thumb_thickness_);
scrollbar_layer->set_thumb_length(thumb_length_);
scrollbar_layer->set_track_start(track_start_);
@@ -78,7 +84,7 @@ bool ScrollbarLayerImpl::WillDraw(DrawMode draw_mode,
ResourceProvider* resource_provider) {
LayerImpl::WillDraw(draw_mode, resource_provider);
return draw_mode != DRAW_MODE_RESOURCELESS_SOFTWARE ||
- layer_tree_impl()->settings().solid_color_scrollbars;
+ IsSolidColor();
}
void ScrollbarLayerImpl::AppendQuads(QuadSink* quad_sink,
@@ -96,7 +102,7 @@ void ScrollbarLayerImpl::AppendQuads(QuadSink* quad_sink,
gfx::Rect thumb_quad_rect = ComputeThumbQuadRect();
- if (layer_tree_impl()->settings().solid_color_scrollbars) {
+ if (IsSolidColor()) {
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
quad->SetNew(shared_quad_state,
thumb_quad_rect,
@@ -150,6 +156,16 @@ ScrollbarOrientation ScrollbarLayerImpl::Orientation() const {
return orientation_;
}
+bool ScrollbarLayerImpl::IsSolidColor() const {
+ return is_solid_color_ ||
+ (layer_tree_impl() &&
aelias_OOO_until_Jul13 2013/06/21 23:34:35 DCHECK(layer_tree_impl()). (Or you could just get
wjmaclean 2013/06/24 14:06:41 I thought about pushing it as a property, though I
+ layer_tree_impl()->settings().force_solid_color_scrollbars);
+}
+
+void ScrollbarLayerImpl::set_is_solid_color(bool is_solid_color) {
+ is_solid_color_ = is_solid_color;
+}
+
float ScrollbarLayerImpl::CurrentPos() const {
return current_pos_;
}
@@ -234,7 +250,7 @@ gfx::Rect ScrollbarLayerImpl::ComputeThumbQuadRect() const {
if (orientation_ == VERTICAL)
track_length += vertical_adjust_;
- if (layer_tree_impl()->settings().solid_color_scrollbars) {
+ if (IsSolidColor()) {
thumb_length = std::max(
static_cast<int>(visible_to_total_length_ratio_ * track_length),
thumb_thickness_);

Powered by Google App Engine
This is Rietveld 408576698