_PowerManagerImpl::KeepScreenOnState(bool keepOn, bool dimming)
{
int ret = -1;
- unsigned int state = LCD_DIM;
+ unsigned int state = LCD_DIM, flag = GOTO_STATE_NOW;
_PowerManagerImpl::Init();
SysLog(NID_SYS, "Power control option: keep %d, dimming %d", keepOn, dimming);
if (dimming)
{
state = LCD_DIM;
+ if(power_get_state() == POWER_STATE_NORMAL)
+ {
+ flag = STAY_CUR_STATE;
+ }
}
else
{
state = LCD_NORMAL;
}
- ret = pm_lock_state(state, GOTO_STATE_NOW, 0);
+ ret = pm_lock_state(state, flag, 0);
SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "[E_SYSTEM] It failed to lock the screen state");
_keepScreenOnState = true;
}