diff --git a/src/greeter/greeterproxy.cpp b/src/greeter/greeterproxy.cpp index 171aac598..4ef4e1ceb 100644 --- a/src/greeter/greeterproxy.cpp +++ b/src/greeter/greeterproxy.cpp @@ -262,8 +262,6 @@ void GreeterProxy::unlock(const QString &user, const QString &password) void GreeterProxy::logout() { qCDebug(treelandGreeter) << "Logout."; - d->isLoggedIn = false; - Q_EMIT isLoggedInChanged(); auto session = Helper::instance()->activeSession().lock(); SocketWriter(d->socket) << quint32(GreeterMessages::Logout) << session->id; } @@ -301,6 +299,7 @@ void GreeterProxy::onSessionNew(const QString &id, const QDBusObjectPath &path) userModel()->updateUserLoginState(username, true); // userLoggedIn signal is connected with Helper::updateActiveUserSession Q_EMIT d->userModel->userLoggedIn(username, id.toInt()); + Q_EMIT loginSucceeded(username); updateLocketState(); }); } @@ -473,9 +472,9 @@ void GreeterProxy::updateLocketState() if (!d->userModel) return; qCInfo(treelandGreeter) << "Update lock state"; - bool locked = false; + bool locked = d->isLocked; if (auto user = d->userModel->currentUser()) { - locked = user->logined(); + locked = !user->logined(); } if (d->isLocked != locked) {