| Index: chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.cc
|
| diff --git a/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.cc b/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.cc
|
| index 11032d2c9b43aa5320f6e96f104a30d2836894fb..05a335ea59d6280ed3bd0758e5bd7543096f8e8d 100644
|
| --- a/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.cc
|
| +++ b/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.cc
|
| @@ -27,6 +27,8 @@ void AppWindowLauncherItemController::AddWindow(ui::BaseWindow* app_window) {
|
| aura::Window* window = app_window->GetNativeWindow();
|
| if (window)
|
| observed_windows_.Add(window);
|
| + if (GetLastActiveWindow() == app_window)
|
| + OnActiveWindowChanged(app_window);
|
| }
|
|
|
| AppWindowLauncherItemController::WindowList::iterator
|
| @@ -49,8 +51,8 @@ void AppWindowLauncherItemController::RemoveWindow(ui::BaseWindow* app_window) {
|
| NOTREACHED();
|
| return;
|
| }
|
| - OnWindowRemoved(app_window);
|
| windows_.erase(iter);
|
| + OnActiveWindowChanged(GetLastActiveWindow());
|
| }
|
|
|
| ui::BaseWindow* AppWindowLauncherItemController::GetAppWindow(
|
| @@ -65,6 +67,7 @@ void AppWindowLauncherItemController::SetActiveWindow(aura::Window* window) {
|
| ui::BaseWindow* app_window = GetAppWindow(window);
|
| if (app_window)
|
| last_active_window_ = app_window;
|
| + OnActiveWindowChanged(GetLastActiveWindow());
|
| }
|
|
|
| AppWindowLauncherItemController*
|
| @@ -119,6 +122,12 @@ void AppWindowLauncherItemController::ActivateIndexedApp(size_t index) {
|
| ShowAndActivateOrMinimize(*it);
|
| }
|
|
|
| +ui::BaseWindow* AppWindowLauncherItemController::GetLastActiveWindow() {
|
| + if (last_active_window_)
|
| + return last_active_window_;
|
| + return windows_.empty() ? nullptr : windows_.front();
|
| +}
|
| +
|
| void AppWindowLauncherItemController::OnWindowPropertyChanged(
|
| aura::Window* window,
|
| const void* key,
|
|
|