Index: cc/animation/scrollbar_animation_controller_thinning.cc |
diff --git a/cc/animation/scrollbar_animation_controller_thinning.cc b/cc/animation/scrollbar_animation_controller_thinning.cc |
index 0405074b55a311b1c2f5fa5543a6219c5d4cdf20..af6987e0e0b03ff23bfcfb713cfd22d9aa3ebef4 100644 |
--- a/cc/animation/scrollbar_animation_controller_thinning.cc |
+++ b/cc/animation/scrollbar_animation_controller_thinning.cc |
@@ -7,6 +7,7 @@ |
#include "base/time/time.h" |
#include "cc/layers/layer_impl.h" |
#include "cc/layers/scrollbar_layer_impl_base.h" |
+#include "cc/trees/layer_tree_impl.h" |
namespace { |
const float kIdleThicknessScale = 0.4f; |
@@ -23,12 +24,9 @@ ScrollbarAnimationControllerThinning::Create( |
base::TimeDelta delay_before_starting, |
base::TimeDelta resize_delay_before_starting, |
base::TimeDelta duration) { |
- return make_scoped_ptr( |
- new ScrollbarAnimationControllerThinning(scroll_layer, |
- client, |
- delay_before_starting, |
- resize_delay_before_starting, |
- duration)); |
+ return make_scoped_ptr(new ScrollbarAnimationControllerThinning( |
+ scroll_layer, client, delay_before_starting, resize_delay_before_starting, |
+ duration)); |
} |
ScrollbarAnimationControllerThinning::ScrollbarAnimationControllerThinning( |
@@ -37,11 +35,11 @@ ScrollbarAnimationControllerThinning::ScrollbarAnimationControllerThinning( |
base::TimeDelta delay_before_starting, |
base::TimeDelta resize_delay_before_starting, |
base::TimeDelta duration) |
- : ScrollbarAnimationController(client, |
+ : ScrollbarAnimationController(scroll_layer, |
+ client, |
delay_before_starting, |
resize_delay_before_starting, |
duration), |
- scroll_layer_(scroll_layer), |
mouse_is_over_scrollbar_(false), |
mouse_is_near_scrollbar_(false), |
thickness_change_(NONE), |
@@ -56,9 +54,10 @@ ScrollbarAnimationControllerThinning::~ScrollbarAnimationControllerThinning() { |
void ScrollbarAnimationControllerThinning::RunAnimationFrame(float progress) { |
float opacity = OpacityAtAnimationProgress(progress); |
- float thumb_thickness_scale = ThumbThicknessScaleAtAnimationProgress( |
- progress); |
+ float thumb_thickness_scale = |
+ ThumbThicknessScaleAtAnimationProgress(progress); |
ApplyOpacityAndThumbThicknessScale(opacity, thumb_thickness_scale); |
+ client_->SetNeedsRedrawForScrollbarAnimation(); |
if (progress == 1.f) { |
opacity_change_ = NONE; |
thickness_change_ = NONE; |
@@ -77,7 +76,7 @@ void ScrollbarAnimationControllerThinning::DidMouseMoveOffScrollbar() { |
void ScrollbarAnimationControllerThinning::DidScrollUpdate(bool on_resize) { |
ScrollbarAnimationController::DidScrollUpdate(on_resize); |
ApplyOpacityAndThumbThicknessScale( |
- 1, mouse_is_near_scrollbar_ ? 1.f : kIdleThicknessScale); |
+ 1, mouse_is_near_scrollbar_ ? 1.f : kIdleThicknessScale); |
if (!mouse_is_over_scrollbar_) |
opacity_change_ = DECREASE; |
@@ -114,9 +113,8 @@ float ScrollbarAnimationControllerThinning::OpacityAtAnimationProgress( |
return ret; |
} |
-float |
-ScrollbarAnimationControllerThinning::ThumbThicknessScaleAtAnimationProgress( |
- float progress) { |
+float ScrollbarAnimationControllerThinning:: |
+ ThumbThicknessScaleAtAnimationProgress(float progress) { |
if (thickness_change_ == NONE) |
return mouse_is_near_scrollbar_ ? 1.f : kIdleThicknessScale; |
float factor = thickness_change_ == INCREASE ? progress : (1.f - progress); |
@@ -135,14 +133,14 @@ float ScrollbarAnimationControllerThinning::AdjustScale( |
} |
void ScrollbarAnimationControllerThinning::ApplyOpacityAndThumbThicknessScale( |
- float opacity, float thumb_thickness_scale) { |
+ float opacity, |
+ float thumb_thickness_scale) { |
if (!scroll_layer_->scrollbars()) |
return; |
LayerImpl::ScrollbarSet* scrollbars = scroll_layer_->scrollbars(); |
for (LayerImpl::ScrollbarSet::iterator it = scrollbars->begin(); |
- it != scrollbars->end(); |
- ++it) { |
+ it != scrollbars->end(); ++it) { |
ScrollbarLayerImplBase* scrollbar = *it; |
if (scrollbar->is_overlay_scrollbar()) { |
float effectiveOpacity = |
@@ -151,10 +149,9 @@ void ScrollbarAnimationControllerThinning::ApplyOpacityAndThumbThicknessScale( |
: 0; |
scrollbar->SetOpacity(effectiveOpacity); |
- scrollbar->SetThumbThicknessScaleFactor( |
- AdjustScale(thumb_thickness_scale, |
- scrollbar->thumb_thickness_scale_factor(), |
- thickness_change_)); |
+ scrollbar->SetThumbThicknessScaleFactor(AdjustScale( |
+ thumb_thickness_scale, scrollbar->thumb_thickness_scale_factor(), |
+ thickness_change_)); |
} |
} |
} |