From 3f75980171a5a2a87bce4f1ad6166c5e6807b857 Mon Sep 17 00:00:00 2001 From: deepin-ci-robot Date: Mon, 14 Sep 2026 04:31:11 +0000 Subject: [PATCH] sync: from linuxdeepin/dde-session-shell Synchronize source files from linuxdeepin/dde-session-shell. Source-pull-request: https://github.com/linuxdeepin/dde-session-shell/pull/88 --- src/dde-lock/lockworker.cpp | 5 +++-- src/session-widgets/sessionbasemodel.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/dde-lock/lockworker.cpp b/src/dde-lock/lockworker.cpp index 1c034509..52bae204 100644 --- a/src/dde-lock/lockworker.cpp +++ b/src/dde-lock/lockworker.cpp @@ -585,7 +585,7 @@ void LockWorker::doPowerAction(const SessionBaseModel::PowerAction action) m_model->setShutdownMode(true); auto gsCheckPwd = m_model->gsCheckpwd(); if (!isLocked() || m_model->currentModeState() == SessionBaseModel::ModeStatus::ShutDownMode || !gsCheckPwd) { - m_sessionManagerInter->RequestReboot(); + QTimer::singleShot(100, this, [this] { m_sessionManagerInter->RequestReboot(); }); } else { createAuthentication(m_account); m_model->setCurrentModeState(SessionBaseModel::ModeStatus::ConfirmPasswordMode); @@ -604,7 +604,7 @@ void LockWorker::doPowerAction(const SessionBaseModel::PowerAction action) m_model->setShutdownMode(true); auto gsCheckPwd = m_model->gsCheckpwd(); if (!isLocked() || m_model->currentModeState() == SessionBaseModel::ModeStatus::ShutDownMode || !gsCheckPwd) { - m_sessionManagerInter->RequestShutdown(); + QTimer::singleShot(100, this, [this] { m_sessionManagerInter->RequestShutdown(); }); } else { createAuthentication(m_account); m_model->setCurrentModeState(SessionBaseModel::ModeStatus::ConfirmPasswordMode); @@ -624,6 +624,7 @@ void LockWorker::doPowerAction(const SessionBaseModel::PowerAction action) createAuthentication(m_model->currentUser()->name()); break; case SessionBaseModel::PowerAction::RequireLogout: + m_model->setShutdownMode(true); m_sessionManagerInter->RequestLogout(); return; case SessionBaseModel::PowerAction::RequireSwitchSystem: diff --git a/src/session-widgets/sessionbasemodel.cpp b/src/session-widgets/sessionbasemodel.cpp index b7f09194..762bd04a 100644 --- a/src/session-widgets/sessionbasemodel.cpp +++ b/src/session-widgets/sessionbasemodel.cpp @@ -123,7 +123,7 @@ void SessionBaseModel::setPowerAction(const PowerAction &powerAction) m_powerAction = powerAction; - if (m_enableShutdownBlackWidget && !gsCheckpwd() && (powerAction == SessionBaseModel::PowerAction::RequireRestart || powerAction == SessionBaseModel::PowerAction::RequireShutdown)) + if (m_enableShutdownBlackWidget && !gsCheckpwd() && (powerAction == SessionBaseModel::PowerAction::RequireRestart || powerAction == SessionBaseModel::PowerAction::RequireShutdown || powerAction == SessionBaseModel::PowerAction::RequireLogout)) Q_EMIT shutdownkModeChanged(true); emit onPowerActionChanged(powerAction);