[gnome-shell/wip/wayland-gdm-cleanup: 3/3] retrigger greeter
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/wayland-gdm-cleanup: 3/3] retrigger greeter
- Date: Sat, 8 Mar 2014 00:36:53 +0000 (UTC)
commit 28f4030aa21a0a442ae1c520e5d18903c0f4755d
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Mar 7 19:35:02 2014 -0500
retrigger greeter
js/gdm/loginDialog.js | 28 ++++++++++++++++++++++++++++
js/misc/loginManager.js | 1 +
2 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index b4953b9..811b27f 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -473,6 +473,8 @@ const LoginDialog = new Lang.Class({
this._updateDisableUserList();
this._userListLoaded = false;
+ LoginManager.getLoginManager().getCurrentSessionProxy(Lang.bind(this, this._gotGreeterSessionProxy));
+
// If the user list is enabled, it should take key focus; make sure the
// screen shield is initialized first to prevent it from stealing the
// focus later
@@ -639,6 +641,32 @@ const LoginDialog = new Lang.Class({
this._showPrompt();
},
+ _sessionActivated: function() {
+ // We fade out the shell after logging in, and then re-set
+ // the greeter wen we're VT switched to again.
+
+ // XXX: re-trigger startup animation
+ if (this._authPrompt.verificationStatus == GdmUtil.VerificationStatus.VERIFICATION_SUCCEEDED) {
+ this._reset();
+
+ // XXX: do something better here
+ this.actor.opacity = 255;
+
+ let children = Main.layoutManager.uiGroup.get_children();
+ for (let i = 0; i < children.length; i++) {
+ if (children[i] != Main.layoutManager.screenShieldGroup)
+ children[i].opacity = 255;
+ }
+ }
+ },
+
+ _gotGreeterSessionProxy: function(proxy) {
+ proxy.connect('g-properties-changed', Lang.bind(this, function() {
+ if (proxy.Active)
+ this._sessionActivated();
+ }));
+ },
+
_startSession: function(serviceName) {
Tweener.addTween(this.actor,
{ opacity: 0,
diff --git a/js/misc/loginManager.js b/js/misc/loginManager.js
index ae87a55..c6cea88 100644
--- a/js/misc/loginManager.js
+++ b/js/misc/loginManager.js
@@ -39,6 +39,7 @@ const SystemdLoginSessionIface = '<node> \
<interface name="org.freedesktop.login1.Session"> \
<signal name="Lock" /> \
<signal name="Unlock" /> \
+<property name="Active" access="readonly" /> \
</interface> \
</node>';
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]