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 43c69d3c0395abccc75a5e041936f7714b6d97d0..168f2281c61cd36a2bf841800c258d5a38c8838f 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 |
@@ -36,6 +36,7 @@ |
#include "ui/aura/window.h" |
#include "ui/base/ui_base_types.h" |
#include "ui/events/event.h" |
+#include "ui/views/corewm/transient_window_manager.h" |
#include "ui/views/corewm/window_util.h" |
namespace { |
@@ -235,9 +236,10 @@ void MultiUserWindowManagerChromeOS::SetWindowOwner( |
// Remember the initial visibility of the window. |
window_to_entry_[window]->set_show(window->IsVisible()); |
- // Set the window and the state observer. |
+ // Add observers to track state changes. |
window->AddObserver(this); |
ash::wm::GetWindowState(window)->AddObserver(this); |
+ views::corewm::TransientWindowManager::Get(window)->AddObserver(this); |
// Check if this window was created due to a user interaction. If it was, |
// transfer it to the current user. |
@@ -415,8 +417,8 @@ void MultiUserWindowManagerChromeOS::OnWindowDestroyed(aura::Window* window) { |
RemoveTransientOwnerRecursive(window); |
return; |
} |
- // Remove the state and the window observer. |
ash::wm::GetWindowState(window)->RemoveObserver(this); |
+ views::corewm::TransientWindowManager::Get(window)->RemoveObserver(this); |
// Remove the window from the owners list. |
delete window_to_entry_[window]; |
window_to_entry_.erase(window); |
@@ -462,7 +464,7 @@ void MultiUserWindowManagerChromeOS::OnWindowVisibilityChanged( |
SetWindowVisibility(window, false); |
} |
-void MultiUserWindowManagerChromeOS::OnAddTransientChild( |
+void MultiUserWindowManagerChromeOS::OnTransientChildAdded( |
aura::Window* window, |
aura::Window* transient_window) { |
if (!GetWindowOwner(window).empty()) { |
@@ -477,7 +479,7 @@ void MultiUserWindowManagerChromeOS::OnAddTransientChild( |
AddTransientOwnerRecursive(transient_window, owned_parent); |
} |
-void MultiUserWindowManagerChromeOS::OnRemoveTransientChild( |
+void MultiUserWindowManagerChromeOS::OnTransientChildRemoved( |
aura::Window* window, |
aura::Window* transient_window) { |
// Remove the transient child if the window itself is owned, or one of the |
@@ -605,8 +607,9 @@ void MultiUserWindowManagerChromeOS::AddTransientOwnerRecursive( |
transient_window_to_visibility_.end()); |
transient_window_to_visibility_[window] = window->IsVisible(); |
- // Add a window observer to make sure that we catch status changes. |
+ // Add observers to track state changes. |
window->AddObserver(this); |
+ views::corewm::TransientWindowManager::Get(window)->AddObserver(this); |
// Hide the window if it should not be shown. Note that this hide operation |
// will hide recursively this and all children - but we have already collected |
@@ -629,8 +632,8 @@ void MultiUserWindowManagerChromeOS::RemoveTransientOwnerRecursive( |
transient_window_to_visibility_.find(window); |
DCHECK(visibility_item != transient_window_to_visibility_.end()); |
- // Remove the window observer. |
window->RemoveObserver(this); |
+ views::corewm::TransientWindowManager::Get(window)->RemoveObserver(this); |
bool unowned_view_state = visibility_item->second; |
transient_window_to_visibility_.erase(visibility_item); |