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;
         }
openSUSE Build Service is sponsored by