代码拉取完成,页面将自动刷新
From 49da14ad556935f475a538090a7c3648485d3485 Mon Sep 17 00:00:00 2001
From: huangjiawen <huangjiawen@kylinsec.com.cn>
Date: Wed, 31 May 2023 17:31:48 +0800
Subject: [PATCH] feature(session): Add always show exit window flag.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 添加总是显示退出窗口标志位
Signed-off-by: huangjiawen <huangjiawen@kylinsec.com.cn>
---
data/com.kylinsec.kiran.session-manager.gschema.xml.in | 6 +++++-
include/ksm-i.h | 4 +++-
src/core/session-manager.cpp | 3 ++-
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/data/com.kylinsec.kiran.session-manager.gschema.xml.in b/data/com.kylinsec.kiran.session-manager.gschema.xml.in
index b71dd3e..313d055 100644
--- a/data/com.kylinsec.kiran.session-manager.gschema.xml.in
+++ b/data/com.kylinsec.kiran.session-manager.gschema.xml.in
@@ -15,6 +15,10 @@
<default>true</default>
<description>Whether lock screen when the computer is hibernate.</description>
</key>
- </schema>
+ <key name="always-show-exit-window" type="b">
+ <default>false</default>
+ <description>Set whether to always show the exit window.</description>
+ </key>
+ </schema>
</schemalist>
diff --git a/include/ksm-i.h b/include/ksm-i.h
index ca4bb86..fb49a59 100644
--- a/include/ksm-i.h
+++ b/include/ksm-i.h
@@ -42,6 +42,8 @@ extern "C"
#define KSM_SCHEMA_KEY_SCREEN_LOCKED_WHEN_SUSPEND "screen-locked-when-suspend"
// 休眠时是否锁定屏幕
#define KSM_SCHEMA_KEY_SCREEN_LOCKED_WHEN_HIBERNATE "screen-locked-when-hibernate"
+// 退出时是否显示退出窗口
+#define KSM_SCHEMA_KEY_ALWAYS_SHOW_EXIT_WINDOW "always-show-exit-window"
// JK: json key
#define KSM_INHIBITOR_JK_COOKIE "cookie"
@@ -96,4 +98,4 @@ extern "C"
#ifdef __cplusplus
}
-#endif
\ No newline at end of file
+#endif
diff --git a/src/core/session-manager.cpp b/src/core/session-manager.cpp
index 12dcc15..6ca79be 100644
--- a/src/core/session-manager.cpp
+++ b/src/core/session-manager.cpp
@@ -725,8 +725,9 @@ void SessionManager::queryEndSessionComplete()
this->m_waitingClientsTimeoutID->disconnect();
this->m_waitingClientsTimeoutID->stop();
+ auto showExitWindow = this->m_settings->get(KSM_SCHEMA_KEY_ALWAYS_SHOW_EXIT_WINDOW).toBool();
// 如果不存在退出会话的抑制器,则直接进入下一个阶段
- if (!this->m_inhibitorManager->hasInhibitor(KSMInhibitorFlag::KSM_INHIBITOR_FLAG_QUIT))
+ if (!showExitWindow && !this->m_inhibitorManager->hasInhibitor(KSMInhibitorFlag::KSM_INHIBITOR_FLAG_QUIT))
{
this->startNextPhase();
return;
--
2.33.0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。