Index: athena/screen/screen_manager_impl.cc |
diff --git a/athena/screen/screen_manager_impl.cc b/athena/screen/screen_manager_impl.cc |
index 1e8223832a50ad3b9cc8b23a170c466395645394..ca3101a7698c623e77d6dd3c102d0184e51e6924 100644 |
--- a/athena/screen/screen_manager_impl.cc |
+++ b/athena/screen/screen_manager_impl.cc |
@@ -73,7 +73,8 @@ class AthenaWindowTreeClient : public aura::client::WindowTreeClient { |
DISALLOW_COPY_AND_ASSIGN(AthenaWindowTreeClient); |
}; |
-aura::Window* CreateContainer(aura::Window* parent, const std::string& name) { |
+aura::Window* CreateContainerInternal(aura::Window* parent, |
+ const std::string& name) { |
aura::Window* container = new aura::Window(NULL); |
container->Init(aura::WINDOW_LAYER_NOT_DRAWN); |
container->SetName(name); |
@@ -90,15 +91,16 @@ class ScreenManagerImpl : public ScreenManager { |
void Init(); |
private: |
- // Screenmanager: |
- virtual aura::Window* GetContainerWindow() OVERRIDE { return container_; } |
+ // ScreenManager: |
+ virtual aura::Window* CreateDefaultContainer( |
+ const std::string& name) OVERRIDE; |
+ virtual aura::Window* CreateContainer(const std::string& name) OVERRIDE; |
virtual aura::Window* GetContext() OVERRIDE { return root_window_; } |
virtual void SetBackgroundImage(const gfx::ImageSkia& image) OVERRIDE; |
aura::Window* root_window_; |
- // A container used for apps/web windows. |
- aura::Window* container_; |
aura::Window* background_window_; |
+ |
scoped_ptr<BackgroundController> background_controller_; |
scoped_ptr<aura::client::WindowTreeClient> window_tree_client_; |
@@ -107,14 +109,23 @@ class ScreenManagerImpl : public ScreenManager { |
void ScreenManagerImpl::Init() { |
root_window_->SetLayoutManager(new FillLayoutManager(root_window_)); |
- background_window_ = CreateContainer(root_window_, "AthenaBackground"); |
+ background_window_ = |
+ CreateContainerInternal(root_window_, "AthenaBackground"); |
background_window_->SetLayoutManager( |
new FillLayoutManager(background_window_)); |
background_controller_.reset(new BackgroundController(background_window_)); |
- container_ = CreateContainer(root_window_, "AthenaContainer"); |
+} |
- window_tree_client_.reset(new AthenaWindowTreeClient(container_)); |
+aura::Window* ScreenManagerImpl::CreateDefaultContainer( |
+ const std::string& name) { |
+ aura::Window* container = CreateContainerInternal(root_window_, name); |
+ window_tree_client_.reset(new AthenaWindowTreeClient(container)); |
aura::client::SetWindowTreeClient(root_window_, window_tree_client_.get()); |
+ return container; |
+} |
+ |
+aura::Window* ScreenManagerImpl::CreateContainer(const std::string& name) { |
+ return CreateContainerInternal(root_window_, name); |
} |
void ScreenManagerImpl::SetBackgroundImage(const gfx::ImageSkia& image) { |