From 80fa4005e852d29f4f21b4b65eb3605d319500d6 Mon Sep 17 00:00:00 2001 From: yangmin Date: Wed, 13 Dec 2023 19:33:09 +0800 Subject: [PATCH] fix(switch user): A black screen is displayed when you enter the password to log in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: 输入密码登录直接显示黑屏 Log: I8NPNU 【切换用户】会话管理器点击切换用户后选择另一个用户,此时会直接变为登录界面,之后点击kylin用户会回到切换用户界面,再次点击另一个用户后无法再切 换回kylin用户,输入密码登录直接显示黑屏 --- src/lock-backend/switchuserutils.cpp | 43 ++++++++++++---------------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/src/lock-backend/switchuserutils.cpp b/src/lock-backend/switchuserutils.cpp index a25e6e3..092b05d 100644 --- a/src/lock-backend/switchuserutils.cpp +++ b/src/lock-backend/switchuserutils.cpp @@ -31,6 +31,7 @@ #include #include #include +#include "global_utils.h" SwitchUserUtils::SwitchUserUtils() { @@ -279,31 +280,25 @@ int SwitchUserUtils::SwitchToUserSession(QString seatPath, UserDisplayIfInfo &to } return 0; } else if (!toUDII.strUserName.isEmpty()) { -// if (GreeterService::instance()->isServiceActivatable()) { -// GreeterService::instance()->SwitchToGreeterUser(toUDII.strUserName); -// QDBusMessage result = ifaceDM.call("SwitchToGreeter"); -// if(result.type() == QDBusMessage::ErrorMessage) { -// qWarning() << "SwitchUser SwitchToGreeter failed:" << result.errorMessage(); -// return -2; -// } -// return 2; -// } else { -// QDBusMessage result = ifaceDM.call("SwitchToUser", toUDII.strUserName, toUDII.strSessionPath); -// if(result.type() == QDBusMessage::ErrorMessage) { -// qWarning() << "SwitchUser SwitchToUser failed:" << result.errorMessage(); -// return -2; -// } -// return 1; -// } - return 4; + if (!isGreeterMode()) { + QDBusMessage result = ifaceDM.call("SwitchToUser", toUDII.strUserName, toUDII.strSessionPath); + if(result.type() == QDBusMessage::ErrorMessage) { + qWarning() << "SwitchUser SwitchToUser failed:" << result.errorMessage(); + return 2; + } + } else { + return 4; + } } else { -// QDBusMessage result = ifaceDM.call("SwitchToGreeter"); -// if(result.type() == QDBusMessage::ErrorMessage) { -// qWarning() << "SwitchUser SwitchToGreeter failed:" << result.errorMessage(); -// return -2; -// } -// return 2; - return 5; + if (!isGreeterMode()) { + QDBusMessage result = ifaceDM.call("SwitchToGreeter"); + if(result.type() == QDBusMessage::ErrorMessage) { + qWarning() << "SwitchUser SwitchToGreeter failed:" << result.errorMessage(); + return 2; + } + } else { + return 5; + } } return 0; }