58 lines
1.9 KiB
Diff
58 lines
1.9 KiB
Diff
diff -Naur ukui-session-manager-3.1.0/ukui-session/ukuismserver.cpp ukui-session-manager-3.1.0~/ukui-session/ukuismserver.cpp
|
|
--- ukui-session-manager-3.1.0/ukui-session/ukuismserver.cpp 2022-04-20 17:40:57.000000000 +0800
|
|
+++ ukui-session-manager-3.1.0~/ukui-session/ukuismserver.cpp 2023-07-09 13:49:42.930414204 +0800
|
|
@@ -1065,22 +1065,28 @@
|
|
|
|
void UKUISMServer::completeKilling()
|
|
{
|
|
+// if (m_state == Killing) {
|
|
+// //这一段的含义是只要客户端列表中还有非窗管的客户端存在,则等待,直到客户端中只有一个窗管,则开始杀死窗管
|
|
+// bool wait = false;
|
|
+// foreach (UKUISMClient *c, m_clients) {
|
|
+// if (isWM(c)) {
|
|
+// continue;
|
|
+// }
|
|
+// wait = true;
|
|
+// }
|
|
+
|
|
+// if (wait) {
|
|
+// return;
|
|
+// }
|
|
+
|
|
+// // killWM();
|
|
+// //修改为不杀死窗管,直接结束会话
|
|
+// killingCompleted();
|
|
+// }
|
|
+// dy use default kde method
|
|
if (m_state == Killing) {
|
|
- //这一段的含义是只要客户端列表中还有非窗管的客户端存在,则等待,直到客户端中只有一个窗管,则开始杀死窗管
|
|
- bool wait = false;
|
|
- foreach (UKUISMClient *c, m_clients) {
|
|
- if (isWM(c)) {
|
|
- continue;
|
|
- }
|
|
- wait = true;
|
|
- }
|
|
-
|
|
- if (wait) {
|
|
+ if (!m_clients.isEmpty()) // still waiting for clients to go away
|
|
return;
|
|
- }
|
|
-
|
|
-// killWM();
|
|
- //修改为不杀死窗管,直接结束会话
|
|
killingCompleted();
|
|
}
|
|
}
|
|
@@ -1145,7 +1151,9 @@
|
|
void UKUISMServer::killingCompleted()
|
|
{
|
|
emit logoutFinished();
|
|
-// qApp->quit();
|
|
+ //dy use default kde method
|
|
+ qApp->quit();
|
|
+ return;
|
|
//目前不清楚如果不做清理会有什么影响,看日志没有发现问题,使用上也没有区别,但为了保险还是加上
|
|
cleanUp();
|
|
|