| Index: services/ui/demo/mus_demo.h
|
| diff --git a/services/ui/demo/mus_demo.h b/services/ui/demo/mus_demo.h
|
| index bf8c1276e41ffd945ea26ed68a14f154a6e0e4c9..251a505818c42e56c559e517e5f1437bc7e9895c 100644
|
| --- a/services/ui/demo/mus_demo.h
|
| +++ b/services/ui/demo/mus_demo.h
|
| @@ -44,14 +44,28 @@ class MusDemo : public service_manager::Service,
|
|
|
| protected:
|
| void AddPrimaryDisplay(const display::Display& display);
|
| +
|
| + // These functions help to manage the list of WindowTreeData structures.
|
| + // AppendWindowTreeData is used to add an uninitialized structure at the end
|
| + // of the list. When a new WindowTreeHostMus is created and is sent to
|
| + // MusDemo (via OnWmNewDisplay or OnEmbed), the WindowTreeData is initialized
|
| + // by a call to InitWindowTreeData and the demo starts. When the destruction
|
| + // of the WindowTreeHostMus is announced to MusDemo (via OnWmDisplayRemoved
|
| + // or OnEmbedRootDestroyed), the corresponding WindowTreeData is removed by
|
| + // a call to RemoveWindowTreeData.
|
| + void AppendWindowTreeData(std::unique_ptr<WindowTreeData> window_tree_data);
|
| void InitWindowTreeData(
|
| std::unique_ptr<aura::WindowTreeHostMus> window_tree_host);
|
| - void CleanupWindowTreeData();
|
| + void RemoveWindowTreeData(aura::WindowTreeHostMus* window_tree_host);
|
| +
|
| + aura::WindowTreeClient* window_tree_client() {
|
| + return window_tree_client_.get();
|
| + }
|
|
|
| private:
|
| - virtual void OnStartImpl(
|
| - std::unique_ptr<aura::WindowTreeClient>* window_tree_client,
|
| - std::unique_ptr<WindowTreeData>* window_tree_data) = 0;
|
| + virtual void OnStartImpl() = 0;
|
| + virtual std::unique_ptr<aura::WindowTreeClient> CreateWindowTreeClient() = 0;
|
| + bool HasPendingWindowTreeData() const;
|
|
|
| // service_manager::Service:
|
| void OnStart() override;
|
| @@ -76,7 +90,10 @@ class MusDemo : public service_manager::Service,
|
| std::unique_ptr<::wm::WMState> wm_state_;
|
| std::unique_ptr<aura::PropertyConverter> property_converter_;
|
|
|
| - std::unique_ptr<WindowTreeData> window_tree_data_;
|
| + // List of WindowTreeData structures. When a new window is opened, its data
|
| + // is appended at the end of that list and it remains uninitialized until the
|
| + // next call to InitWindowTreeData.
|
| + std::vector<std::unique_ptr<WindowTreeData>> window_tree_data_list_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MusDemo);
|
| };
|
|
|