Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(848)

Unified Diff: ui/display/chromeos/display_configurator.cc

Issue 1861593002: chromeos: Turn off displays on suspend (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: chromeos: Add functions for configuring cached displays Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/display/chromeos/display_configurator.h ('k') | ui/display/chromeos/display_configurator_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/display/chromeos/display_configurator.cc
diff --git a/ui/display/chromeos/display_configurator.cc b/ui/display/chromeos/display_configurator.cc
index 91bb8863b99d5acf44738469b8eb76b6130983ca..72823c41d13726d6fc2294a9a6ff9f5baff8d473 100644
--- a/ui/display/chromeos/display_configurator.cc
+++ b/ui/display/chromeos/display_configurator.cc
@@ -474,6 +474,7 @@ DisplayConfigurator::DisplayConfigurator()
has_pending_power_state_(false),
pending_power_flags_(kSetDisplayPowerNoFlags),
force_configure_(false),
+ configure_cached_displays_(false),
next_display_protection_client_id_(1),
display_externally_controlled_(false),
display_control_changing_(false),
@@ -615,7 +616,7 @@ void DisplayConfigurator::ForceInitialConfigure(
configuration_task_.reset(new UpdateDisplayConfigurationTask(
native_display_delegate_.get(), layout_manager_.get(),
requested_display_state_, requested_power_state_,
- kSetDisplayPowerForceProbe, background_color_argb, true,
+ kSetDisplayPowerForceProbe, background_color_argb, true, false,
base::Bind(&DisplayConfigurator::OnConfigured,
weak_ptr_factory_.GetWeakPtr())));
configuration_task_->Run();
@@ -842,6 +843,7 @@ void DisplayConfigurator::PrepareForExit() {
void DisplayConfigurator::SetDisplayPowerInternal(
chromeos::DisplayPowerState power_state,
int flags,
+ bool configure_cached_displays,
const ConfigurationCallback& callback) {
if (power_state == current_power_state_ &&
!(flags & kSetDisplayPowerForceProbe)) {
@@ -852,6 +854,7 @@ void DisplayConfigurator::SetDisplayPowerInternal(
pending_power_state_ = power_state;
has_pending_power_state_ = true;
pending_power_flags_ = flags;
+ configure_cached_displays_ = configure_cached_displays;
queued_configuration_callbacks_.push_back(callback);
RunPendingConfiguration();
@@ -872,7 +875,7 @@ void DisplayConfigurator::SetDisplayPower(
<< (configure_timer_.IsRunning() ? "Running" : "Stopped");
requested_power_state_ = power_state;
- SetDisplayPowerInternal(requested_power_state_, flags, callback);
+ SetDisplayPowerInternal(requested_power_state_, flags, false, callback);
}
void DisplayConfigurator::SetDisplayMode(MultipleDisplayState new_state) {
@@ -951,7 +954,7 @@ void DisplayConfigurator::SuspendDisplays(
// unless explicitly requested by lucid sleep code). Use
// SetDisplayPowerInternal so requested_power_state_ is maintained.
SetDisplayPowerInternal(chromeos::DISPLAY_POWER_ALL_OFF,
- kSetDisplayPowerNoFlags, callback);
+ kSetDisplayPowerNoFlags, false, callback);
// We need to make sure that the monitor configuration we just did actually
// completes before we return.
@@ -963,11 +966,12 @@ void DisplayConfigurator::ResumeDisplays() {
return;
displays_suspended_ = false;
+ configure_cached_displays_ = true;
// If requested_power_state_ is ALL_OFF due to idle suspend, powerd will turn
// the display power on when it enables the backlight.
- SetDisplayPower(requested_power_state_, kSetDisplayPowerNoFlags,
- base::Bind(&DoNothing));
+ SetDisplayPowerInternal(requested_power_state_, kSetDisplayPowerNoFlags, true,
+ base::Bind(&DoNothing));
}
void DisplayConfigurator::ConfigureDisplays() {
@@ -994,14 +998,16 @@ void DisplayConfigurator::RunPendingConfiguration() {
configuration_task_.reset(new UpdateDisplayConfigurationTask(
native_display_delegate_.get(), layout_manager_.get(),
requested_display_state_, pending_power_state_, pending_power_flags_,
- 0, force_configure_, base::Bind(&DisplayConfigurator::OnConfigured,
- weak_ptr_factory_.GetWeakPtr())));
+ 0, force_configure_, configure_cached_displays_,
+ base::Bind(&DisplayConfigurator::OnConfigured,
+ weak_ptr_factory_.GetWeakPtr())));
configuration_task_->set_virtual_display_snapshots(
virtual_display_snapshots_.get());
// Reset the flags before running the task; otherwise it may end up scheduling
// another configuration.
force_configure_ = false;
+ configure_cached_displays_ = false;
pending_power_flags_ = kSetDisplayPowerNoFlags;
has_pending_power_state_ = false;
requested_display_state_ = MULTIPLE_DISPLAY_STATE_INVALID;
« no previous file with comments | « ui/display/chromeos/display_configurator.h ('k') | ui/display/chromeos/display_configurator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698