Index: ash/wm/overview/window_selector_window.cc |
diff --git a/ash/wm/overview/window_selector_window.cc b/ash/wm/overview/window_selector_window.cc |
index ae276b63d95d9f2935779ec187b10154e8e2bff0..ed06e8e26d0b447252288a2227d2def27d661bee 100644 |
--- a/ash/wm/overview/window_selector_window.cc |
+++ b/ash/wm/overview/window_selector_window.cc |
@@ -21,9 +21,12 @@ namespace ash { |
WindowSelectorWindow::WindowSelectorWindow(aura::Window* window) |
: transform_window_(window) { |
+ window->AddObserver(this); |
} |
WindowSelectorWindow::~WindowSelectorWindow() { |
+ if (transform_window_.window()) |
+ transform_window_.window()->RemoveObserver(this); |
} |
aura::Window* WindowSelectorWindow::GetRootWindow() { |
@@ -48,6 +51,7 @@ aura::Window* WindowSelectorWindow::SelectionWindow() { |
void WindowSelectorWindow::RemoveWindow(const aura::Window* window) { |
DCHECK_EQ(transform_window_.window(), window); |
+ transform_window_.window()->RemoveObserver(this); |
transform_window_.OnWindowDestroyed(); |
WindowSelectorItem::RemoveWindow(window); |
} |