kiran-session-manager/0001-fix-xsmp-Ignore-the-cancel-shutdown-request.patch
tangjie02 dd2e79f6c3 Ignore the cancel shutdown request
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
2023-09-12 20:44:45 +08:00

69 lines
3.1 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 9c06f60de67e54bd835e66d1b1adca9e370f0b2b Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Tue, 12 Sep 2023 20:29:06 +0800
Subject: [PATCH] fix(xsmp): Ignore the cancel shutdown request.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 用于响应客户端取消结束会话的事件不能通知到用户,会导致开始菜单注销按钮功能不能正常使用,影响用户体验,因此暂时禁止处理该请求
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
src/core/inhibitor-manager.cpp | 13 ++++++++++---
src/core/session-manager.cpp | 7 ++++---
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/core/inhibitor-manager.cpp b/src/core/inhibitor-manager.cpp
index b42b57d..552929a 100644
--- a/src/core/inhibitor-manager.cpp
+++ b/src/core/inhibitor-manager.cpp
@@ -129,9 +129,8 @@ void InhibitorManager::deleteInhibitorsWithStartupID()
bool InhibitorManager::hasInhibitor(uint32_t flags)
{
- auto iter = std::find_if(this->m_inhibitors.begin(), this->m_inhibitors.end(), [flags](QSharedPointer<Inhibitor> iter) {
- return ((flags & iter->flags) == flags);
- });
+ auto iter = std::find_if(this->m_inhibitors.begin(), this->m_inhibitors.end(), [flags](QSharedPointer<Inhibitor> iter)
+ { return ((flags & iter->flags) == flags); });
return (iter != this->m_inhibitors.end());
}
@@ -147,6 +146,14 @@ bool InhibitorManager::addInhibitor(QSharedPointer<Inhibitor> inhibitor)
KLOG_DEBUG() << "Cookie: " << inhibitor->cookie;
+ KLOG_DEBUG() << "Add a new inhibitor,"
+ << " cookie: " << inhibitor->cookie
+ << ", appid: " << inhibitor->appID
+ << ", flags: " << inhibitor->flags
+ << ", reason: " << inhibitor->reason
+ << ", startupID: " << inhibitor->startupID
+ << ", toplevelXID: " << inhibitor->toplevelXID;
+
if (this->m_inhibitors.find(inhibitor->cookie) != this->m_inhibitors.end())
{
KLOG_WARNING() << "The inhibitor " << inhibitor->cookie << " already exist.";
diff --git a/src/core/session-manager.cpp b/src/core/session-manager.cpp
index 6ca79be..b5bdb57 100644
--- a/src/core/session-manager.cpp
+++ b/src/core/session-manager.cpp
@@ -486,9 +486,10 @@ void SessionManager::onInteractDone(Client *client)
void SessionManager::onShutdownCanceled(Client *client)
{
- KLOG_DEBUG() << "Client: " << client->getID() << " cancels shutdown.";
-
- this->cancelEndSession();
+ KLOG_WARNING() << "Client: " << client->getID() << " want to cancels shutdown. ignore the client request.";
+ /* 如果QT的窗口在closeEvent函数中调用event->ignore()来忽略窗口关闭事件则桌面会话退出时会收到QT客户端发送的取消结束会话的事件
+ 用于响应客户端取消结束会话的事件不能通知到用户,会导致开始菜单->注销按钮功能不能正常使用,影响用户体验,因此暂时禁止处理该请求。*/
+ // this->cancelEndSession();
}
void SessionManager::onEndSessionPhase2Request(Client *client)
--
2.36.1