| Index: ash/wm/overview/window_selector_panels.cc
|
| diff --git a/ash/wm/overview/window_selector_panels.cc b/ash/wm/overview/window_selector_panels.cc
|
| index e936f929e31cd702e530efd0845c66b074665309..e4ab9bea2bfce8e89bb1a67c482cfc65eaa69671 100644
|
| --- a/ash/wm/overview/window_selector_panels.cc
|
| +++ b/ash/wm/overview/window_selector_panels.cc
|
| @@ -92,10 +92,15 @@ WindowSelectorPanels::~WindowSelectorPanels() {
|
| static_cast<PanelLayoutManager*>(
|
| Shell::GetContainer(panels_root_window_, kShellWindowId_PanelContainer)->
|
| layout_manager())->SetShowCalloutWidgets(true);
|
| + for (WindowList::iterator iter = transform_windows_.begin();
|
| + iter != transform_windows_.end(); iter++) {
|
| + (*iter)->window()->RemoveObserver(this);
|
| + }
|
| }
|
|
|
| void WindowSelectorPanels::AddWindow(aura::Window* window) {
|
| DCHECK(window->GetRootWindow() == panels_root_window_);
|
| + window->AddObserver(this);
|
| transform_windows_.push_back(new ScopedTransformPanelWindow(window));
|
| }
|
|
|
| @@ -139,6 +144,7 @@ void WindowSelectorPanels::RemoveWindow(const aura::Window* window) {
|
| for (WindowList::iterator iter = transform_windows_.begin();
|
| iter != transform_windows_.end(); ++iter) {
|
| if ((*iter)->window() == window) {
|
| + (*iter)->window()->RemoveObserver(this);
|
| (*iter)->OnWindowDestroyed();
|
| transform_windows_.erase(iter);
|
| break;
|
| @@ -155,7 +161,7 @@ void WindowSelectorPanels::PrepareForOverview() {
|
| // |panel_windows| will hold all the windows in the panel container, sorted
|
| // according to their stacking order.
|
| const aura::Window::Windows panels =
|
| - transform_windows_[0]->window()->parent()->children();
|
| + transform_windows_.front()->window()->parent()->children();
|
|
|
| // Call PrepareForOverview() in the reverse stacking order so that the
|
| // transparent windows that handle the events are in the correct stacking
|
|
|