From 2345933c4965bb0c41c32b58981fe775ab384ee5 Mon Sep 17 00:00:00 2001 From: Robertkill Date: Wed, 26 Nov 2025 09:37:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BB=9F=E4=B8=80=E9=94=81=E5=B1=8F?= =?UTF-8?q?=E6=BF=80=E6=B4=BB=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除 ENABLE_DSS_SNIPE 条件编译的锁屏激活代码,将所有锁屏激活逻辑统一到 login1 会话 ActiveChanged 信号下。DSS snipe 功能导致锁屏行为不一致和重 复的激活逻辑。现在所有锁屏激活都通过 login1 会话管理器的活动状态变化来处 理,确保不同会话类型下行为一致。 此更改还移除了 pushUserFrame 中的显式模型可见性设置,因为锁屏激活逻辑现 在通过统一的激活机制正确处理可见性。 Influence: 1. 测试系统锁定时锁屏激活功能 2. 验证会话激活时锁屏正确显示 3. 测试用户切换功能仍然正常工作 4. 验证会话未激活时锁屏不会显示 5. 测试不同会话类型下的一致性 PMS: BUG-341543 --- src/dde-lock/lockworker.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/dde-lock/lockworker.cpp b/src/dde-lock/lockworker.cpp index b6925a91..6feb8e50 100644 --- a/src/dde-lock/lockworker.cpp +++ b/src/dde-lock/lockworker.cpp @@ -138,15 +138,6 @@ void LockWorker::initConnections() emit m_model->authFinished(true); }); -#ifdef ENABLE_DSS_SNIPE - connect(m_sessionManagerInter, &SessionManagerInter::LockedChanged, this, [ this ](bool locked) { - qDebug() << "SessionManagerInter::LockedChanged" << locked; - if (locked && !m_model->visible()) { - m_model->showLockScreen(); - } - }); -#endif - /* org.freedesktop.login1.Session */ connect(m_login1SessionSelf, &Login1SessionSelf::ActiveChanged, this, [this](bool active) { qCInfo(DDE_SHELL) << "DBus lock service active changed, active: " << active << ", model visible: " << m_model->visible(); @@ -161,6 +152,12 @@ void LockWorker::initConnections() endAuthentication(m_account, AT_All); destroyAuthentication(m_account); } + +#ifdef ENABLE_DSS_SNIPE + if (active && !m_model->visible()) { + m_model->showLockScreen(); + } +#endif }); // 在待机时启动定时器,如果定时器超时的时间离待机时间大于15秒,则认为已经唤醒,停止定时器,并设置黑屏模式为false