backends/drm: Undo fade-out effect upon unsuccessful DPMS Off

DrmOutput::setDrmDpmsMode() already takes care of reverting any
pending output pipeline changes, but the aboutToTurnOff signal from
setDpmsMode() needs an explicit wakeUp signal to cancel it out.

BUG: 477916
CCBUG: 481520
This commit is contained in:
Jakob Petsovits 2024-02-19 20:03:13 -05:00
parent 79dd34b3f9
commit 9e3e567592

View file

@ -106,7 +106,10 @@ DrmOutput::DrmOutput(const std::shared_ptr<DrmConnector> &conn)
m_turnOffTimer.setSingleShot(true);
m_turnOffTimer.setInterval(dimAnimationTime());
connect(&m_turnOffTimer, &QTimer::timeout, this, [this] {
setDrmDpmsMode(DpmsMode::Off);
if (!setDrmDpmsMode(DpmsMode::Off)) {
// in case of failure, undo aboutToTurnOff() from setDpmsMode()
Q_EMIT wakeUp();
}
});
}