From c7f2e0fa6ab599ae6fffd3c836085ded8ec3a628 Mon Sep 17 00:00:00 2001 From: April & May & June Date: Tue, 27 Jan 2026 16:16:15 +0800 Subject: [PATCH] fix: fix ddm crash on treeland crash The problem is caused by reckless cleanup process. Check those pointers carefully to make reconnection works. --- src/daemon/TreelandConnector.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/daemon/TreelandConnector.cpp b/src/daemon/TreelandConnector.cpp index f950760..3e3a9ba 100644 --- a/src/daemon/TreelandConnector.cpp +++ b/src/daemon/TreelandConnector.cpp @@ -220,10 +220,16 @@ void TreelandConnector::connect(QString socketPath) { void TreelandConnector::disconnect() { if (m_display) { - m_notifier->setEnabled(false); + if (m_notifier) + m_notifier->setEnabled(false); wl_display_disconnect(m_display); - delete m_notifier; + if (m_notifier) { + m_notifier->deleteLater(); + m_notifier = nullptr; + } + m_display = nullptr; } + m_ddm = nullptr; } // Request wrapper