Index: chromeos/display/output_configurator.cc |
diff --git a/chromeos/display/output_configurator.cc b/chromeos/display/output_configurator.cc |
index 66a5b17601dbbe6e411cd19e90dd68635b581add..646b374ba3699021e326c23fc27a69a13d149e0f 100644 |
--- a/chromeos/display/output_configurator.cc |
+++ b/chromeos/display/output_configurator.cc |
@@ -661,6 +661,9 @@ bool OutputConfigurator::CycleDisplayMode() { |
XRRFreeScreenResources(screen); |
XUngrabServer(display); |
+ |
+ if (!did_change) |
+ FOR_EACH_OBSERVER(Observer, observers_, OnDisplayModeChangeFailed()); |
return did_change; |
} |
@@ -737,6 +740,9 @@ bool OutputConfigurator::SetDisplayMode(OutputState new_state) { |
output_state_ == STATE_SINGLE) |
return false; |
+ if (output_state_ == new_state) |
+ return true; |
+ |
Display* display = base::MessagePumpAuraX11::GetDefaultXDisplay(); |
CHECK(display != NULL); |
XGrabServer(display); |
@@ -758,6 +764,9 @@ bool OutputConfigurator::SetDisplayMode(OutputState new_state) { |
XRRFreeScreenResources(screen); |
XUngrabServer(display); |
+ |
+ if (output_state_ != new_state) |
+ FOR_EACH_OBSERVER(Observer, observers_, OnDisplayModeChangeFailed()); |
return true; |
} |