diff --git a/src/backends/drm/drm_output.cpp b/src/backends/drm/drm_output.cpp index bd3447c147..fc5d19ec97 100644 --- a/src/backends/drm/drm_output.cpp +++ b/src/backends/drm/drm_output.cpp @@ -106,7 +106,10 @@ DrmOutput::DrmOutput(const std::shared_ptr &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(); + } }); }