File gnome-shell-940159-user-logout-issue.patch of Package gnome-shell.1083
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 40a2c3e..b03043f 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -421,6 +421,7 @@ const LoginDialog = new Lang.Class({
Lang.bind(this, this._onSessionOpened));
this._timedLoginRequestedId = this._greeter.connect('timed-login-requested',
Lang.bind(this, this._onTimedLoginRequested));
+ this._sessionReOpenedId = this._greeter.connect('reauthenticated', Lang.bind(this, this._onReauthenticated));
}
this._settings = new Gio.Settings({ schema: GdmUtil.LOGIN_SCREEN_SCHEMA });
@@ -1106,6 +1107,29 @@ const LoginDialog = new Lang.Class({
}));
},
+ _onReauthenticated: function(serviceName) {
+ Tweener.addTween(this.actor,
+ {opacity: 255,
+ time: _FADE_ANIMATION_TIME,
+ transition: 'easeOutQuad',
+ onUpdate: function() {
+ let children = Main.layoutManager.uiGroup.get_children();
+
+ for (let i = 0; i < children.length; i++) {
+ if (children[i] != Main.layoutManager.screenShieldGroup)
+ children[i].opacity = this.actor.opacity;
+ }
+ },
+ onUpdateScope: this,
+ onComplete: function() {
+ Mainloop.idle_add(Lang.bind(this, function() {
+ this._showUserList();
+ return false;
+ }));
+ },
+ onCompleteScope:this});
+ },
+
_setUserListExpanded: function(expanded) {
this._userList.updateStyle(expanded);
this._userSelectionBox.visible = expanded;
@@ -1200,6 +1224,7 @@ const LoginDialog = new Lang.Class({
if (this._greeter) {
this._greeter.disconnect(this._defaultSessionChangedId);
this._greeter.disconnect(this._sessionOpenedId);
+ this._greeter.disconnect(this._sessionReOpenedId);
this._greeter.disconnect(this._timedLoginRequestedId);
this._greeter = null;
}