Chromium Code Reviews| Index: ui/display/chromeos/display_configurator.cc |
| diff --git a/ui/display/chromeos/display_configurator.cc b/ui/display/chromeos/display_configurator.cc |
| index 8d0a24106f6566b4eb493444d67e37ea3246b19d..0143d8a51ae3b33ce2f13bf0ec39bff3bcd6e9de 100644 |
| --- a/ui/display/chromeos/display_configurator.cc |
| +++ b/ui/display/chromeos/display_configurator.cc |
| @@ -162,12 +162,14 @@ const DisplayMode* DisplayConfigurator::FindDisplayModeMatchingSize( |
| DisplayConfigurator::DisplayConfigurator() |
| : state_controller_(NULL), |
| mirroring_controller_(NULL), |
| + display_externally_controlled_(false), |
| is_panel_fitting_enabled_(false), |
| configure_display_(base::SysInfo::IsRunningOnChromeOS()), |
| display_state_(MULTIPLE_DISPLAY_STATE_INVALID), |
| requested_power_state_(chromeos::DISPLAY_POWER_ALL_ON), |
| current_power_state_(chromeos::DISPLAY_POWER_ALL_ON), |
| - next_display_protection_client_id_(1) {} |
| + next_display_protection_client_id_(1) { |
| +} |
| DisplayConfigurator::~DisplayConfigurator() { |
| if (native_display_delegate_) |
| @@ -201,6 +203,15 @@ void DisplayConfigurator::Init(bool is_panel_fitting_enabled) { |
| } |
| } |
| +void DisplayConfigurator::RelinquishControl() { |
| + // Note: This cannot be enabled yet until a subsequent change |
| + // in the native_display_delegate to allow it to relinquish |
| + // control of the display. |
| + // |
| + // native_display_delegate_->RelinquishDisplayControl(); |
|
Daniel Erat
2014/11/02 13:48:34
please don't check in commented-out code; just rep
dsodman
2014/11/04 05:19:40
Done.
|
| + // display_externally_controlled_ = true; |
| +} |
| + |
| void DisplayConfigurator::ForceInitialConfigure( |
| uint32_t background_color_argb) { |
| if (!configure_display_) |
| @@ -496,7 +507,8 @@ bool DisplayConfigurator::SetDisplayMode(MultipleDisplayState new_state) { |
| return false; |
| VLOG(1) << "SetDisplayMode: state=" << DisplayStateToString(new_state); |
| - if (display_state_ == new_state) { |
| + if ((display_state_ == new_state) && |
| + (display_externally_controlled_ == false)) { |
| // Cancel software mirroring if the state is moving from |
| // MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED to |
| // MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED. |
| @@ -508,6 +520,7 @@ bool DisplayConfigurator::SetDisplayMode(MultipleDisplayState new_state) { |
| } |
| native_display_delegate_->GrabServer(); |
| + display_externally_controlled_ = false; |
| UpdateCachedDisplays(); |
| const bool success = EnterStateOrFallBackToSoftwareMirroring( |
| new_state, requested_power_state_); |