Index: ui/aura_shell/shell.cc |
diff --git a/ui/aura_shell/shell.cc b/ui/aura_shell/shell.cc |
index b2a3a98651b4f957f69c7871265161626fa26ff9..f540ac2117da89b75852d0de43c483deb3e6b7ca 100644 |
--- a/ui/aura_shell/shell.cc |
+++ b/ui/aura_shell/shell.cc |
@@ -11,6 +11,7 @@ |
#include "ui/aura/toplevel_window_container.h" |
#include "ui/aura/window.h" |
#include "ui/aura/window_types.h" |
+#include "ui/aura_shell/always_on_top_controller.h" |
#include "ui/aura_shell/default_container_event_filter.h" |
#include "ui/aura_shell/default_container_layout_manager.h" |
#include "ui/aura_shell/desktop_layout_manager.h" |
@@ -82,6 +83,8 @@ Shell::Shell() |
} |
Shell::~Shell() { |
+ DCHECK(instance_ == this); |
+ instance_ = NULL; |
} |
// static |
@@ -106,6 +109,11 @@ void Shell::Init() { |
(*i)->Show(); |
} |
+ always_on_top_controller_.reset(new internal::AlwaysOnTopController); |
+ always_on_top_controller_->SetContainers( |
+ GetContainer(internal::kShellWindowId_DefaultContainer), |
+ GetContainer(internal::kShellWindowId_AlwaysOnTopContainer)); |
+ |
internal::DesktopLayoutManager* desktop_layout = |
new internal::DesktopLayoutManager(desktop_window); |
desktop_window->SetLayoutManager(desktop_layout); |
@@ -175,7 +183,7 @@ void Shell::AddChildToDefaultParent(aura::Window* window) { |
switch (window->type()) { |
case aura::WINDOW_TYPE_NORMAL: |
case aura::WINDOW_TYPE_POPUP: |
- parent = GetContainer(internal::kShellWindowId_DefaultContainer); |
+ parent = always_on_top_controller_->GetContainer(window); |
break; |
case aura::WINDOW_TYPE_MENU: |
case aura::WINDOW_TYPE_TOOLTIP: |