From a00e427ed63f3b7167b88412a04c2cf360dda7e5 Mon Sep 17 00:00:00 2001 From: yeshanshan Date: Thu, 12 Feb 2026 13:27:46 +0800 Subject: [PATCH] fix: fix wild pointer issue when screen switching MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Changed QScreen* to QPointer for m_dockScreen member variable 2. This prevents dangling pointer issues when screens are removed or changed 3. QPointer automatically becomes null when the QScreen object is deleted 4. Added include for QPointer header file 5. Updated copyright year range from 2023 to 2023-2026 Influence: 1. Test dock behavior when switching between different screen configurations 2. Verify dock doesn't crash when monitors are disconnected or reconnected 3. Test multi-monitor setup with dock moving between screens 4. Verify screen-related dock properties update correctly after screen changes 5. Test system behavior during display configuration changes fix: 修复屏幕切换时的野指针问题 1. 将 m_dockScreen 成员变量从 QScreen* 改为 QPointer 2. 防止屏幕被移除或更改时出现悬空指针问题 3. QPointer 在 QScreen 对象被删除时会自动变为空指针 4. 添加了 QPointer 头文件包含 5. 更新了版权年份范围从 2023 到 2023-2026 Influence: 1. 测试在不同屏幕配置切换时的停靠栏行为 2. 验证断开或重新连接显示器时停靠栏不会崩溃 3. 测试多显示器设置中停靠栏在屏幕间移动的情况 4. 验证屏幕更改后停靠栏的屏幕相关属性正确更新 5. 测试显示配置更改时的系统行为 --- panels/dock/dockpanel.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/panels/dock/dockpanel.h b/panels/dock/dockpanel.h index 17482be71..3bd31485c 100644 --- a/panels/dock/dockpanel.h +++ b/panels/dock/dockpanel.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2023 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -9,6 +9,7 @@ #include "constants.h" #include +#include namespace dock { class DockHelper; @@ -138,7 +139,7 @@ private Q_SLOTS: ColorTheme m_theme; HideState m_hideState; DockHelper* m_helper; - QScreen *m_dockScreen; + QPointer m_dockScreen; LoadTrayPlugins *m_loadTrayPlugins; bool m_compositorReady; bool m_launcherShown;