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: |