| Index: chromeos/display/output_configurator.cc
|
| diff --git a/chromeos/display/output_configurator.cc b/chromeos/display/output_configurator.cc
|
| index cca82e7062be224dd560cf2b5a4432f4e57a1aed..fab354ee5440d01b5eb494438d1ae8a85ce977e1 100644
|
| --- a/chromeos/display/output_configurator.cc
|
| +++ b/chromeos/display/output_configurator.cc
|
| @@ -12,16 +12,13 @@
|
| #include "base/logging.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/time.h"
|
| +#include "chromeos/display/output_util.h"
|
| #include "chromeos/display/real_output_configurator_delegate.h"
|
|
|
| namespace chromeos {
|
|
|
| namespace {
|
|
|
| -// Prefixes for the built-in displays.
|
| -const char kInternal_LVDS[] = "LVDS";
|
| -const char kInternal_eDP[] = "eDP";
|
| -
|
| // The delay to perform configuration after RRNotify. See the comment
|
| // in |Dispatch()|.
|
| const int64 kConfigureDelayMs = 500;
|
| @@ -93,7 +90,8 @@ OutputConfigurator::OutputSnapshot::OutputSnapshot()
|
| is_internal(false),
|
| is_aspect_preserving_scaling(false),
|
| touch_device_id(0),
|
| - index(0) {}
|
| + display_id(0),
|
| + has_display_id(false) {}
|
|
|
| OutputConfigurator::CoordinateTransformation::CoordinateTransformation()
|
| : x_scale(1.0),
|
| @@ -142,11 +140,6 @@ bool OutputConfigurator::TestApi::SendOutputChangeEvents(bool connected) {
|
| return true;
|
| }
|
|
|
| -// static
|
| -bool OutputConfigurator::IsInternalOutputName(const std::string& name) {
|
| - return name.find(kInternal_LVDS) == 0 || name.find(kInternal_eDP) == 0;
|
| -}
|
| -
|
| OutputConfigurator::OutputConfigurator()
|
| : state_controller_(NULL),
|
| configure_display_(base::chromeos::IsRunningOnChromeOS()),
|
| @@ -512,7 +505,14 @@ OutputState OutputConfigurator::GetOutputState(
|
| } else {
|
| // With either both outputs on or both outputs off, use one of the
|
| // dual modes.
|
| - return state_controller_->GetStateForOutputs(outputs);
|
| + std::vector<int64> display_ids;
|
| + for (size_t i = 0; i < outputs.size(); ++i) {
|
| + // If display id isn't available, switch to extended mode.
|
| + if (!outputs[i].has_display_id)
|
| + return STATE_DUAL_EXTENDED;
|
| + display_ids.push_back(outputs[i].display_id);
|
| + }
|
| + return state_controller_->GetStateForDisplayIds(display_ids);
|
| }
|
| }
|
| default:
|
|
|