Chromium Code Reviews| 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) |
|
xiyuan
2017/05/18 16:22:48
As mentioned in the other comment, it might be bet
khmel
2017/05/18 17:29:34
Done.
|
| + 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, |