Index: ash/display/display_controller.cc |
diff --git a/ash/display/display_controller.cc b/ash/display/display_controller.cc |
index d16af047e6e72e3caf2c0252a1e94b02622b2ff1..4349c513263fadd1eaa0b2983ba1be7fd2963b0b 100644 |
--- a/ash/display/display_controller.cc |
+++ b/ash/display/display_controller.cc |
@@ -557,14 +557,18 @@ void DisplayController::CycleDisplayMode() { |
} |
#if defined(OS_CHROMEOS) |
Shell* shell = Shell::GetInstance(); |
+ internal::DisplayManager* display_manager = GetDisplayManager(); |
if (!base::chromeos::IsRunningOnChromeOS()) { |
internal::DisplayManager::CycleDisplay(); |
- } else if (shell->output_configurator()->connected_output_count() > 1) { |
+ } else if (display_manager->num_connected_displays() > 1) { |
+ chromeos::OutputState new_state = display_manager->IsMirrored() ? |
+ chromeos::STATE_DUAL_EXTENDED : chromeos::STATE_DUAL_MIRROR; |
internal::OutputConfiguratorAnimation* animation = |
shell->output_configurator_animation(); |
animation->StartFadeOutAnimation(base::Bind( |
- base::IgnoreResult(&chromeos::OutputConfigurator::CycleDisplayMode), |
- base::Unretained(shell->output_configurator()))); |
+ base::IgnoreResult(&chromeos::OutputConfigurator::SetDisplayMode), |
+ base::Unretained(shell->output_configurator()), |
+ new_state)); |
} |
#endif |
} |