Index: content/browser/android/overscroll_glow.cc |
diff --git a/content/browser/android/overscroll_glow.cc b/content/browser/android/overscroll_glow.cc |
index c8a972cceb1c304535caaa57c82bde961e0d0ac7..cf2f6f37d75adcad080a0f6d59cfcfe7090fdb94 100644 |
--- a/content/browser/android/overscroll_glow.cc |
+++ b/content/browser/android/overscroll_glow.cc |
@@ -89,7 +89,8 @@ void OverscrollGlow::EnsureResources() { |
} |
OverscrollGlow::OverscrollGlow(const SkBitmap& edge, const SkBitmap& glow) |
- : horizontal_overscroll_enabled_(true), |
+ : enabled_(true), |
Ted C
2013/06/21 17:44:12
should this default to false?
|
+ horizontal_overscroll_enabled_(true), |
vertical_overscroll_enabled_(true), |
root_layer_(cc::Layer::Create()) { |
for (size_t i = 0; i < EdgeEffect::EDGE_COUNT; ++i) { |
@@ -108,6 +109,9 @@ OverscrollGlow::~OverscrollGlow() { |
void OverscrollGlow::OnOverscrolled(base::TimeTicks current_time, |
gfx::Vector2dF overscroll, |
gfx::Vector2dF velocity) { |
+ if (!enabled_) |
+ return; |
+ |
// The size of the glow determines the relative effect of the inputs; an |
// empty-sized effect is effectively disabled. |
if (size_.IsEmpty()) |
@@ -156,7 +160,7 @@ void OverscrollGlow::OnOverscrolled(base::TimeTicks current_time, |
} |
bool OverscrollGlow::Animate(base::TimeTicks current_time) { |
- if (!IsActive()) |
+ if (!NeedsAnimate()) |
return false; |
const gfx::SizeF sizes[EdgeEffect::EDGE_COUNT] = { |
@@ -171,10 +175,22 @@ bool OverscrollGlow::Animate(base::TimeTicks current_time) { |
} |
} |
- return IsActive(); |
+ return NeedsAnimate(); |
} |
-bool OverscrollGlow::IsActive() const { |
+void OverscrollGlow::SetEnabled(bool enabled) { |
+ if (enabled_ == enabled) |
+ return; |
+ enabled_ = enabled; |
+ if (!enabled_) { |
+ for (size_t i = 0; i < EdgeEffect::EDGE_COUNT; ++i) |
+ edge_effects_[i]->Finish(); |
+ } |
+} |
+ |
+bool OverscrollGlow::NeedsAnimate() const { |
+ if (!enabled_) |
+ return false; |
for (size_t i = 0; i < EdgeEffect::EDGE_COUNT; ++i) { |
if (!edge_effects_[i]->IsFinished()) |
return true; |
@@ -182,11 +198,6 @@ bool OverscrollGlow::IsActive() const { |
return false; |
} |
-void OverscrollGlow::Finish() { |
- for (size_t i = 0; i < EdgeEffect::EDGE_COUNT; ++i) |
- edge_effects_[i]->Finish(); |
-} |
- |
void OverscrollGlow::Pull(base::TimeTicks current_time, |
gfx::Vector2dF overscroll_delta) { |
overscroll_delta = ZeroSmallComponents(overscroll_delta); |