From 9e3e5675924c9b9772693717f4e2b80d0ff394bd Mon Sep 17 00:00:00 2001 From: Jakob Petsovits Date: Mon, 19 Feb 2024 20:03:13 -0500 Subject: [PATCH] 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 --- src/backends/drm/drm_output.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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(); + } }); }