From 1169ad44aa5c19a8262ffc90632c9b41703a0f99 Mon Sep 17 00:00:00 2001 From: zhaoyingzhen Date: Fri, 12 Jun 2026 10:21:07 +0800 Subject: [PATCH] fix: bind taskmanager start timer to applet lifetime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ensure the delayed window monitor startup uses TaskManager as the Qt context. - Prevent the single-shot callback from running after the applet is destroyed. - Avoid a use-after-free during shell restart when switching between TTY and TreeLand. 确保延迟启动窗口监控的定时器使用 TaskManager 作为 Qt 上下文。 - 防止 applet 销毁后 singleShot 回调继续执行。 - 避免在 TTY 与 TreeLand 图形会话切换触发 shell 重启时出现 use-after-free。 Log: bind taskmanager start timer to applet lifetime --- panels/dock/taskmanager/taskmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panels/dock/taskmanager/taskmanager.cpp b/panels/dock/taskmanager/taskmanager.cpp index 0c64335f5..bff0edf57 100644 --- a/panels/dock/taskmanager/taskmanager.cpp +++ b/panels/dock/taskmanager/taskmanager.cpp @@ -247,7 +247,7 @@ bool TaskManager::init() modifyOpacityChanged(); connect(appearanceApplet, SIGNAL(opacityChanged()), this, SLOT(modifyOpacityChanged())); } - QTimer::singleShot(500, [this]() { + QTimer::singleShot(500, this, [this]() { if (m_windowMonitor) m_windowMonitor->start(); });