@@ -83,7 +83,16 @@ bool Greeter::isAuthenticated() const
83QString Greeter::authenticationUser() const
83QString Greeter::authenticationUser() const
85 Q_D(const Greeter);
85 Q_D(const Greeter);
86+ return d->cachedAuthUser;
89+void Greeter::checkAuthenticationUser()
92+ if (d->cachedAuthUser != d->m_greeter->authenticationUser()) {
86− return d->m_greeter->authenticationUser();
93+ d->cachedAuthUser = d->m_greeter->authenticationUser();
94+ Q_EMIT authenticationUserChanged();
89QString Greeter::defaultSessionHint() const
98QString Greeter::defaultSessionHint() const
@@ -144,7 +153,7 @@ void Greeter::authenticate(const QString &username)
146 Q_EMIT isAuthenticatedChanged();
155 Q_EMIT isAuthenticatedChanged();
147− Q_EMIT authenticationUserChanged();
156+ checkAuthenticationUser();
150void Greeter::respond(const QString &response)
159void Greeter::respond(const QString &response)
@@ -164,7 +173,7 @@ void Greeter::showPromptFilter(const QString &text, QLightDM::Greeter::PromptTyp
164 Q_D(Greeter);
173 Q_D(Greeter);
165 d->wasPrompted = true;
174 d->wasPrompted = true;
167− Q_EMIT authenticationUserChanged(); // may have changed in liblightdm
176+ checkAuthenticationUser(); // may have changed in liblightdm
169 bool isDefaultPrompt = (text == dgettext("Linux-PAM", "Password: "));
178 bool isDefaultPrompt = (text == dgettext("Linux-PAM", "Password: "));
@@ -185,7 +194,7 @@ void Greeter::showPromptFilter(const QString &text, QLightDM::Greeter::PromptTyp
186void Greeter::showMessageFilter(const QString &text, QLightDM::Greeter::MessageType type)
195void Greeter::showMessageFilter(const QString &text, QLightDM::Greeter::MessageType type)
188− Q_EMIT authenticationUserChanged(); // may have changed in liblightdm
197+ checkAuthenticationUser(); // may have changed in liblightdm
189 Q_EMIT showMessage(text, type == QLightDM::Greeter::MessageTypeError);
198 Q_EMIT showMessage(text, type == QLightDM::Greeter::MessageTypeError);