Index: ash/display/mirror_window_controller.cc |
diff --git a/ash/display/mirror_window_controller.cc b/ash/display/mirror_window_controller.cc |
index 529353713927e4d2679d91091c911f79fad74d6d..fc88b79dd7ae837bf94c7e9aabcf56e0b261999a 100644 |
--- a/ash/display/mirror_window_controller.cc |
+++ b/ash/display/mirror_window_controller.cc |
@@ -120,6 +120,14 @@ class NoneCaptureClient : public aura::client::CaptureClient { |
DISALLOW_COPY_AND_ASSIGN(NoneCaptureClient); |
}; |
+DisplayManager::MultiDisplayMode GetCurrentMultiDisplayMode() { |
+ DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
+ return display_manager->IsInUnifiedMode() |
+ ? DisplayManager::UNIFIED |
+ : (display_manager->IsInMirrorMode() ? DisplayManager::MIRRORING |
+ : DisplayManager::EXTENDED); |
+} |
+ |
} // namespace |
struct MirrorWindowController::MirroringHostInfo { |
@@ -153,6 +161,8 @@ void MirrorWindowController::UpdateWindow( |
const DisplayInfo& source_display_info = |
display_manager->GetDisplayInfo(primary.id()); |
+ multi_display_mode_ = GetCurrentMultiDisplayMode(); |
+ |
gfx::Point mirroring_origin; |
for (const DisplayInfo& display_info : display_info_list) { |
if (mirroring_host_info_map_.find(display_info.id()) == |
@@ -268,13 +278,7 @@ void MirrorWindowController::UpdateWindow() { |
} |
void MirrorWindowController::CloseIfNotNecessary() { |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- |
- DisplayManager::MultiDisplayMode new_mode = |
- display_manager->IsInUnifiedMode() |
- ? DisplayManager::UNIFIED |
- : (display_manager->IsInMirrorMode() ? DisplayManager::MIRRORING |
- : DisplayManager::EXTENDED); |
+ DisplayManager::MultiDisplayMode new_mode = GetCurrentMultiDisplayMode(); |
if (multi_display_mode_ != new_mode) |
Close(true); |
multi_display_mode_ = new_mode; |