summaryrefslogtreecommitdiffstats
path: root/chromeos/display
diff options
context:
space:
mode:
authormukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-01 20:56:23 +0000
committermukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-01 20:56:23 +0000
commit18b21b2e9aa6cf49d4ee4556461c028f4d74f0cf (patch)
treef023a423afa5942d5ff06e5091fc9e98084a999a /chromeos/display
parent7f7c45d5a4a34d36310f41dbe2bfb375056582b4 (diff)
downloadchromium_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.cc19
-rw-r--r--chromeos/display/output_configurator.h3
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();