[gnome-shell] polkitAgent: Update user name on user changes



commit f546715cc34ce618f163b7d1ca54858b0206e96f
Author: Jonas Dreßler <verdre v0yd nl>
Date:   Sun Jun 23 11:52:54 2019 +0200

    polkitAgent: Update user name on user changes
    
    Right now we only update the user avatar on the user-changed signal, but
    since we also display the users real name we should also update that if
    the user changes.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/788

 js/ui/components/polkitAgent.js | 68 ++++++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 32 deletions(-)
---
diff --git a/js/ui/components/polkitAgent.js b/js/ui/components/polkitAgent.js
index 03eaf7152f..6c519a647c 100644
--- a/js/ui/components/polkitAgent.js
+++ b/js/ui/components/polkitAgent.js
@@ -51,41 +51,37 @@ var AuthenticationDialog = GObject.registerClass({
             userName = userNames[0];
 
         this._user = AccountsService.UserManager.get_default().get_user(userName);
-        let userRealName = this._user.get_real_name();
+
+        let userBox = new St.BoxLayout({
+            style_class: 'polkit-dialog-user-layout',
+            vertical: false,
+        });
+        content.messageBox.add(userBox);
+
+        this._userAvatar = new UserWidget.Avatar(this._user, {
+            iconSize: DIALOG_ICON_SIZE,
+            styleClass: 'polkit-dialog-user-icon',
+        });
+        this._userAvatar.hide();
+        userBox.add_child(this._userAvatar);
+
+        this._userLabel = new St.Label({
+            style_class: userName === 'root'
+                ? 'polkit-dialog-user-root-label'
+                : 'polkit-dialog-user-label',
+            x_expand: true,
+            y_align: Clutter.ActorAlign.CENTER,
+        });
+
+        if (userName === 'root')
+            this._userLabel.text = _('Administrator');
+
+        userBox.add_child(this._userLabel);
+
         this._userLoadedId = this._user.connect('notify::is-loaded',
                                                 this._onUserChanged.bind(this));
         this._userChangedId = this._user.connect('changed',
                                                  this._onUserChanged.bind(this));
-
-        // Special case 'root'
-        let userIsRoot = false;
-        if (userName == 'root') {
-            userIsRoot = true;
-            userRealName = _("Administrator");
-        }
-
-        if (userIsRoot) {
-            let userLabel = new St.Label(({ style_class: 'polkit-dialog-user-root-label',
-                                            text: userRealName }));
-            content.messageBox.add_child(userLabel);
-        } else {
-            let userBox = new St.BoxLayout({ style_class: 'polkit-dialog-user-layout',
-                                             vertical: false });
-            content.messageBox.add(userBox);
-            this._userAvatar = new UserWidget.Avatar(this._user,
-                                                     { iconSize: DIALOG_ICON_SIZE,
-                                                       styleClass: 'polkit-dialog-user-icon' });
-            this._userAvatar.hide();
-            userBox.add_child(this._userAvatar);
-            let userLabel = new St.Label(({
-                style_class: 'polkit-dialog-user-label',
-                text: userRealName,
-                x_expand: true,
-                y_align: Clutter.ActorAlign.CENTER,
-            }));
-            userBox.add_child(userLabel);
-        }
-
         this._onUserChanged();
 
         this._passwordBox = new St.BoxLayout({ vertical: false, style_class: 'prompt-dialog-password-box' });
@@ -303,7 +299,15 @@ var AuthenticationDialog = GObject.registerClass({
     }
 
     _onUserChanged() {
-        if (this._user.is_loaded && this._userAvatar) {
+        if (!this._user.is_loaded)
+            return;
+
+        let userName = this._user.get_user_name();
+        let realName = this._user.get_real_name();
+
+        if (userName !== 'root') {
+            this._userLabel.set_text(realName);
+
             this._userAvatar.update();
             this._userAvatar.show();
         }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]