| Index: ash/wm/session_state_animator_impl.cc
|
| diff --git a/ash/wm/session_state_animator_impl.cc b/ash/wm/session_state_animator_impl.cc
|
| index d20515542a6eb833e4510353037bea1e0631d3a6..afe0bbfa31d667ca8e34e3e38784edac4194dca0 100644
|
| --- a/ash/wm/session_state_animator_impl.cc
|
| +++ b/ash/wm/session_state_animator_impl.cc
|
| @@ -9,6 +9,7 @@
|
| #include "ash/public/cpp/shell_window_ids.h"
|
| #include "ash/shell.h"
|
| #include "ash/wm/wm_window_animations.h"
|
| +#include "base/barrier_closure.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "ui/aura/client/aura_constants.h"
|
| #include "ui/aura/window_event_dispatcher.h"
|
| @@ -548,10 +549,12 @@ void SessionStateAnimatorImpl::StartAnimationWithCallback(
|
| base::Closure callback) {
|
| aura::Window::Windows containers;
|
| GetContainers(container_mask, &containers);
|
| + base::Closure animation_done_closure =
|
| + base::BarrierClosure(containers.size(), callback);
|
| for (aura::Window::Windows::const_iterator it = containers.begin();
|
| it != containers.end(); ++it) {
|
| ui::LayerAnimationObserver* observer =
|
| - new CallbackAnimationObserver(callback);
|
| + new CallbackAnimationObserver(animation_done_closure);
|
| RunAnimationForWindow(*it, type, speed, observer);
|
| }
|
| }
|
|
|