Index: ash/display/mirror_window_controller.h |
diff --git a/ash/display/mirror_window_controller.h b/ash/display/mirror_window_controller.h |
index 5b24cc6a1b64c968d210effe175b9a57afe7ec25..39adef51e57f2b94388d41920bad8b78c0bde41c 100644 |
--- a/ash/display/mirror_window_controller.h |
+++ b/ash/display/mirror_window_controller.h |
@@ -5,6 +5,9 @@ |
#ifndef ASH_DISPLAY_MIRROR_WINDOW_CONTROLLER_H_ |
#define ASH_DISPLAY_MIRROR_WINDOW_CONTROLLER_H_ |
+#include <map> |
+#include <vector> |
+ |
#include "ash/ash_export.h" |
#include "base/compiler_specific.h" |
#include "base/memory/ref_counted.h" |
@@ -40,7 +43,7 @@ class ASH_EXPORT MirrorWindowController : public aura::WindowTreeHostObserver { |
// Updates the root window's bounds using |display_info|. |
// Creates the new root window if one doesn't exist. |
- void UpdateWindow(const DisplayInfo& display_info); |
+ void UpdateWindow(const std::vector<DisplayInfo>& display_info); |
// Same as above, but using existing display info |
// for the mirrored display. |
@@ -59,12 +62,23 @@ class ASH_EXPORT MirrorWindowController : public aura::WindowTreeHostObserver { |
private: |
friend class test::MirrorWindowTestApi; |
+ struct MirroringHostInfo { |
+ MirroringHostInfo(); |
+ ~MirroringHostInfo(); |
+ scoped_ptr<AshWindowTreeHost> ash_host; |
+ gfx::Size mirror_window_host_size; |
+ aura::Window* mirror_window = nullptr; |
+ }; |
+ |
+ void CloseAndDeleteHost(MirroringHostInfo* host_info); |
+ |
// Creates a RootWindowTransformer for current display |
// configuration. |
scoped_ptr<RootWindowTransformer> CreateRootWindowTransformer() const; |
- scoped_ptr<AshWindowTreeHost> ash_host_; |
- gfx::Size mirror_window_host_size_; |
+ typedef std::map<int64_t, MirroringHostInfo*> MirroringHostInfoMap; |
+ MirroringHostInfoMap mirroring_host_info_map_; |
+ |
scoped_ptr<ui::Reflector> reflector_; |
DISALLOW_COPY_AND_ASSIGN(MirrorWindowController); |