diff --git a/state_manager/service/native/src/display_power_mgr_service.cpp b/state_manager/service/native/src/display_power_mgr_service.cpp index 92dbb29046cc9eb92d2edbb98b3ee971b49cf2b5..e8fe57ddc687f1727d5b2129023317ef54012470 100644 --- a/state_manager/service/native/src/display_power_mgr_service.cpp +++ b/state_manager/service/native/src/display_power_mgr_service.cpp @@ -243,7 +243,12 @@ bool DisplayPowerMgrService::SetDisplayState(uint32_t id, DisplayState state, ui if (state == DisplayState::DISPLAY_OFF) { if (!isDisplayDelayOff_) { DISPLAY_HILOGI(COMP_SVC, "screen off immediately"); - return iterator->second->UpdateState(state, reason); + bool ret = iterator->second->UpdateState(state, reason); + if (!ret) { + DISPLAY_HILOGI(COMP_SVC, "[UL_POWER]undo brightness SetDisplayState"); + BrightnessManager::Get().SetDisplayState(id, iterator->second->GetState()); + } + return ret; } displayId_ = id; displayState_ = state;