| Index: chrome/browser/ui/cocoa/tabs/media_indicator_view.mm
|
| diff --git a/chrome/browser/ui/cocoa/tabs/media_indicator_view.mm b/chrome/browser/ui/cocoa/tabs/media_indicator_view.mm
|
| index e3caf07539d7a2e8b6da26b4f2a59294ee72a5e1..0e67c80968fb69424a697b33f4141fb0fd8cd4a4 100644
|
| --- a/chrome/browser/ui/cocoa/tabs/media_indicator_view.mm
|
| +++ b/chrome/browser/ui/cocoa/tabs/media_indicator_view.mm
|
| @@ -14,25 +14,34 @@ class MediaIndicatorViewAnimationDelegate : public gfx::AnimationDelegate {
|
| TabMediaState* mediaState,
|
| TabMediaState* animatingMediaState)
|
| : view_(view), mediaState_(mediaState),
|
| - animatingMediaState_(animatingMediaState) {}
|
| + animatingMediaState_(animatingMediaState),
|
| + doneCallbackObject_(nil), doneCallbackSelector_(nil) {}
|
| virtual ~MediaIndicatorViewAnimationDelegate() {}
|
|
|
| + void SetAnimationDoneCallback(id anObject, SEL selector) {
|
| + doneCallbackObject_ = anObject;
|
| + doneCallbackSelector_ = selector;
|
| + }
|
| +
|
| virtual void AnimationEnded(const gfx::Animation* animation) OVERRIDE {
|
| *animatingMediaState_ = *mediaState_;
|
| [view_ setNeedsDisplay:YES];
|
| + [doneCallbackObject_ performSelector:doneCallbackSelector_];
|
| }
|
| virtual void AnimationProgressed(const gfx::Animation* animation) OVERRIDE {
|
| [view_ setNeedsDisplay:YES];
|
| }
|
| virtual void AnimationCanceled(const gfx::Animation* animation) OVERRIDE {
|
| - *animatingMediaState_ = *mediaState_;
|
| - [view_ setNeedsDisplay:YES];
|
| + AnimationEnded(animation);
|
| }
|
|
|
| private:
|
| NSView* const view_;
|
| TabMediaState* const mediaState_;
|
| TabMediaState* const animatingMediaState_;
|
| +
|
| + id doneCallbackObject_;
|
| + SEL doneCallbackSelector_;
|
| };
|
|
|
| @implementation MediaIndicatorView
|
| @@ -79,6 +88,11 @@ class MediaIndicatorViewAnimationDelegate : public gfx::AnimationDelegate {
|
| animation_->Start();
|
| }
|
|
|
| +- (void)setAnimationDoneCallbackObject:(id)anObject withSelector:(SEL)selector {
|
| + if (delegate_)
|
| + delegate_->SetAnimationDoneCallback(anObject, selector);
|
| +}
|
| +
|
| - (void)drawRect:(NSRect)rect {
|
| if (!animation_)
|
| return;
|
|
|