Index: ash/display/display_change_observer_x11.cc |
diff --git a/ash/display/display_change_observer_x11.cc b/ash/display/display_change_observer_x11.cc |
index c7539a3a2e60752d8b379ac608ca54b5aa2df1f2..9af77395929af2db91798c0c9a59577bc89acaf8 100644 |
--- a/ash/display/display_change_observer_x11.cc |
+++ b/ash/display/display_change_observer_x11.cc |
@@ -15,6 +15,7 @@ |
#include "ash/display/display_manager.h" |
#include "ash/shell.h" |
#include "base/message_pump_aurax11.h" |
+#include "ash/display/display_controller.h" |
#include "grit/ash_strings.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/x/x11_util.h" |
@@ -128,6 +129,17 @@ DisplayChangeObserverX11::DisplayChangeObserverX11() |
DisplayChangeObserverX11::~DisplayChangeObserverX11() { |
} |
+chromeos::OutputState DisplayChangeObserverX11::GetStateForOutputs( |
+ const std::vector<RROutput>& outputs) const { |
+ CHECK(outputs.size() == 2); |
+ DisplayIdPair pair = std::make_pair(GetDisplayId(outputs[0], 0), |
+ GetDisplayId(outputs[1], 1)); |
+ DisplayLayout layout = Shell::GetInstance()->display_controller()-> |
+ GetRegisteredDisplayLayout(pair); |
+ return layout.mirrored ? |
+ chromeos::STATE_DUAL_MIRROR : chromeos::STATE_DUAL_EXTENDED; |
+} |
+ |
void DisplayChangeObserverX11::OnDisplayModeChanged() { |
XRRScreenResources* screen_resources = |
XRRGetScreenResources(xdisplay_, x_root_window_); |