5 Star 0 Fork 10

src-openEuler/kiran-session-manager

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0001-fix-xsmp-Ignore-the-cancel-shutdown-request.patch 3.13 KB
一键复制 编辑 原始数据 按行查看 历史
tangjie02 提交于 2023-09-12 20:38 . Ignore the cancel shutdown request
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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-openeuler/kiran-session-manager.git
git@gitee.com:src-openeuler/kiran-session-manager.git
src-openeuler
kiran-session-manager
kiran-session-manager
master

搜索帮助