diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-01 20:56:23 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-01 20:56:23 +0000 |
commit | 18b21b2e9aa6cf49d4ee4556461c028f4d74f0cf (patch) | |
tree | f023a423afa5942d5ff06e5091fc9e98084a999a /chromeos/display | |
parent | 7f7c45d5a4a34d36310f41dbe2bfb375056582b4 (diff) | |
download | chromium_src-18b21b2e9aa6cf49d4ee4556461c028f4d74f0cf.zip chromium_src-18b21b2e9aa6cf49d4ee4556461c028f4d74f0cf.tar.gz chromium_src-18b21b2e9aa6cf49d4ee4556461c028f4d74f0cf.tar.bz2 |
Provides more types of errors for display status (2nd)
Note that the text message itself is a placeholder. It has to be replaced
by real sentences.
Previous CL was reverted due to build failures on win aura.
BUG=176011
TBR=jamescook@chromium.org,oshima@chromium.org
TEST=ash_unittests passes on win_aura
Review URL: https://codereview.chromium.org/12387043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185592 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/display')
-rw-r--r-- | chromeos/display/output_configurator.cc | 19 | ||||
-rw-r--r-- | chromeos/display/output_configurator.h | 3 |
2 files changed, 15 insertions, 7 deletions
diff --git a/chromeos/display/output_configurator.cc b/chromeos/display/output_configurator.cc index 00c0f72..4357b1a 100644 --- a/chromeos/display/output_configurator.cc +++ b/chromeos/display/output_configurator.cc @@ -654,10 +654,12 @@ bool OutputConfigurator::CycleDisplayMode() { XRRFreeScreenResources(screen); XUngrabServer(display); - if (did_change) + if (did_change) { NotifyOnDisplayChanged(); - else - FOR_EACH_OBSERVER(Observer, observers_, OnDisplayModeChangeFailed()); + } else { + FOR_EACH_OBSERVER( + Observer, observers_, OnDisplayModeChangeFailed(next_state)); + } return did_change; } @@ -759,10 +761,12 @@ bool OutputConfigurator::SetDisplayMode(OutputState new_state) { XRRFreeScreenResources(screen); XUngrabServer(display); - if (output_state_ == new_state) + if (output_state_ == new_state) { NotifyOnDisplayChanged(); - else - FOR_EACH_OBSERVER(Observer, observers_, OnDisplayModeChangeFailed()); + } else { + FOR_EACH_OBSERVER( + Observer, observers_, OnDisplayModeChangeFailed(new_state)); + } return true; } @@ -833,6 +837,9 @@ void OutputConfigurator::ConfigureOutputs() { if (success) { output_state_ = new_state; NotifyOnDisplayChanged(); + } else { + FOR_EACH_OBSERVER( + Observer, observers_, OnDisplayModeChangeFailed(new_state)); } chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> SetIsProjecting(is_projecting); diff --git a/chromeos/display/output_configurator.h b/chromeos/display/output_configurator.h index cd3420a..804f856 100644 --- a/chromeos/display/output_configurator.h +++ b/chromeos/display/output_configurator.h @@ -57,7 +57,8 @@ class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { virtual void OnDisplayModeChanged() {} // Called when the change of the display mode is issued but failed. - virtual void OnDisplayModeChangeFailed() {} + // |failed_new_state| is the new state which the system failed to enter. + virtual void OnDisplayModeChangeFailed(OutputState failed_new_state) {} }; OutputConfigurator(); |