effects/kscreen: don't stop effect when fade out animation is done

The screen needs to stay black until it gets enabled again, otherwise
slight timing differences can cause the screen to turn on full brightness
again immediately before turning off.

BUG: 460902
master
Xaver Hugl 2 years ago
parent a4cb0e7fd8
commit f6d14f1b44

@ -241,10 +241,10 @@ void DrmOutput::setDpmsMode(DpmsMode mode)
}
} else {
m_gpu->platform()->checkOutputsAreOn();
m_turnOffTimer.stop();
if (mode != dpmsMode() && setDrmDpmsMode(mode)) {
if (m_turnOffTimer.isActive() || (mode != dpmsMode() && setDrmDpmsMode(mode))) {
Q_EMIT wakeUp();
}
m_turnOffTimer.stop();
}
}

@ -102,7 +102,9 @@ void KscreenEffect::prePaintScreen(ScreenPrePaintData &data, std::chrono::millis
state.m_timeLine.advance(presentTime);
if (state.m_timeLine.done()) {
switchState(state);
m_waylandStates.remove(data.screen);
if (state.m_state == StateNormal) {
m_waylandStates.remove(data.screen);
}
}
}
}

Loading…
Cancel
Save