summaryrefslogtreecommitdiffstats
path: root/chromium/ui/views/animation/bounds_animator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/views/animation/bounds_animator.cc')
-rw-r--r--chromium/ui/views/animation/bounds_animator.cc15
1 files changed, 6 insertions, 9 deletions
diff --git a/chromium/ui/views/animation/bounds_animator.cc b/chromium/ui/views/animation/bounds_animator.cc
index 839294ff74c..ba9412722e0 100644
--- a/chromium/ui/views/animation/bounds_animator.cc
+++ b/chromium/ui/views/animation/bounds_animator.cc
@@ -110,13 +110,12 @@ const SlideAnimation* BoundsAnimator::GetAnimationForView(View* view) {
return !IsAnimating(view) ? NULL : data_[view].animation;
}
-void BoundsAnimator::SetAnimationDelegate(View* view,
- AnimationDelegate* delegate,
- bool delete_when_done) {
+void BoundsAnimator::SetAnimationDelegate(
+ View* view,
+ scoped_ptr<AnimationDelegate> delegate) {
DCHECK(IsAnimating(view));
- data_[view].delegate = delegate;
- data_[view].delete_delegate_when_done = delete_when_done;
+ data_[view].delegate = delegate.release();
}
void BoundsAnimator::StopAnimatingView(View* view) {
@@ -177,10 +176,8 @@ void BoundsAnimator::CleanupData(bool send_cancel, Data* data, View* view) {
if (send_cancel && data->delegate)
data->delegate->AnimationCanceled(data->animation);
- if (data->delete_delegate_when_done) {
- delete static_cast<OwnedAnimationDelegate*>(data->delegate);
- data->delegate = NULL;
- }
+ delete data->delegate;
+ data->delegate = NULL;
if (data->animation) {
data->animation->set_delegate(NULL);