Index: chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
index a382c49b7b5d0d76e96ae9c8d63d8bfb64a808b8..126a4694084f49a0af933602049840c23d9f429c 100644 |
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
@@ -15,6 +15,7 @@ |
#include "ash/shell_delegate.h" |
#include "ash/shell_window_ids.h" |
#include "ash/system/tray/system_tray_notifier.h" |
+#include "ash/wm/maximize_mode/maximize_mode_controller.h" |
#include "ash/wm/window_state.h" |
#include "base/auto_reset.h" |
#include "base/message_loop/message_loop.h" |
@@ -692,6 +693,13 @@ void MultiUserWindowManagerChromeOS::SetWindowVisible( |
aura::Window* window, |
bool visible, |
int animation_time_in_ms) { |
+ // The MaximizeModeWindowManager will not handle invisible windows since they |
+ // are not user activatable. Since invisible windows are not being tracked, |
+ // we tell it to maximize / track this window now before it gets shown, to |
+ // reduce animation jank from multiple resizes. |
+ if (visible) |
+ ash::Shell::GetInstance()->maximize_mode_controller()->AddWindow(window); |
+ |
AnimationSetter animation_setter( |
window, |
GetAdjustedAnimationTimeInMS(animation_time_in_ms)); |