summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-03-07 19:35:02 -0500
committerJasper St. Pierre <jstpierre@mecheye.net>2014-03-07 19:36:31 -0500
commit28f4030aa21a0a442ae1c520e5d18903c0f4755d (patch)
tree0c4a19e109f4336dce372cdcc843d2a3282a0624
parent67fe376564b91bfefdc693915b8760f1f36f5e05 (diff)
downloadgnome-shell-wip/wayland-gdm-cleanup.tar.gz
retrigger greeterwip/wayland-gdm-cleanup
-rw-r--r--js/gdm/loginDialog.js28
-rw-r--r--js/misc/loginManager.js1
2 files changed, 29 insertions, 0 deletions
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index b4953b950..811b27f40 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 ae87a5509..c6cea884d 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>';