From a513b795ad45ee794595615ac65c58bebbafff26 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Wed, 27 Jul 2022 13:10:36 +0300 Subject: [PATCH] backends/wayland: Fix a crash on shutdown The wayland backend changes the dpms mode when the enabled state of the output changes. This creates problems when destroying all outputs on shut down. The wayland backend calls InputRedirection's methods, but InputRedirection is already destroyed by that time. While the crash can be fixed by guarding input() in createDpmsFilter() with an if statement, changing dpms mode in updateEnablement() doesn't seem like a good idea because Output changes unrelated states (enabled != dpms mode), so let's get rid of it. --- src/backends/wayland/wayland_output.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backends/wayland/wayland_output.cpp b/src/backends/wayland/wayland_output.cpp index 8478f3f30c..35f8c33017 100644 --- a/src/backends/wayland/wayland_output.cpp +++ b/src/backends/wayland/wayland_output.cpp @@ -77,11 +77,11 @@ void WaylandOutput::setGeometry(const QPoint &logicalPosition, const QSize &pixe void WaylandOutput::updateEnablement(bool enable) { - setDpmsMode(enable ? DpmsMode::On : DpmsMode::Off); - if (enable) + if (enable) { Q_EMIT m_backend->outputEnabled(this); - else + } else { Q_EMIT m_backend->outputDisabled(this); + } } void WaylandOutput::setDpmsMode(DpmsMode mode)