[gnome-shell] unlockDialog: Make the prompt entry insensitive while logging in



commit 0192a6cb129b2bed3c3c8b5336b7a014999775ba
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Oct 3 17:43:38 2012 -0300

    unlockDialog: Make the prompt entry insensitive while logging in
    
    This ensures that the user can't confusingly edit the entry while
    waiting for a response.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=685444

 data/theme/gnome-shell.css |    2 ++
 js/ui/unlockDialog.js      |   12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index b6f4e06..3d929f1 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -402,6 +402,8 @@ StScrollBar StButton#vhandle:active {
 .login-dialog-prompt-entry:insensitive {
     color: rgba(0,0,0,0.7);
     border: 2px solid #565656;
+    background-gradient-start: rgb(200,200,200);
+    background-gradient-end: rgb(210,210,210);
 }
 
 /* Panel */
diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
index 127a924..5ee4387 100644
--- a/js/ui/unlockDialog.js
+++ b/js/ui/unlockDialog.js
@@ -171,7 +171,7 @@ const UnlockDialog = new Lang.Class({
                            default: true };
         this.setButtons([cancelButton, this._okButton]);
 
-        this._updateOkButton(true);
+        this._updateSensitivity(true);
 
         let otherUserLabel = new St.Label({ text: _("Log in as another user"),
                                             style_class: 'login-dialog-not-listed-label' });
@@ -200,7 +200,9 @@ const UnlockDialog = new Lang.Class({
         this._idleWatchId = this._idleMonitor.add_watch(IDLE_TIMEOUT * 1000, Lang.bind(this, this._escape));
     },
 
-    _updateOkButton: function(sensitive) {
+    _updateSensitivity: function(sensitive) {
+        this._promptEntry.reactive = sensitive;
+        this._promptEntry.clutter_text.editable = sensitive;
         this._okButton.button.reactive = sensitive;
         this._okButton.button.can_focus = sensitive;
     },
@@ -230,7 +232,7 @@ const UnlockDialog = new Lang.Class({
         this._promptEntry.menu.isPassword = passwordChar != '';
 
         this._currentQuery = serviceName;
-        this._updateOkButton(true);
+        this._updateSensitivity(true);
     },
 
     _showLoginHint: function(verifier, message) {
@@ -248,7 +250,7 @@ const UnlockDialog = new Lang.Class({
             // and make ourself non-reactive
             // the actual reply to GDM will be sent as soon as asked
             this._firstQuestionAnswer = this._promptEntry.text;
-            this._updateOkButton(false);
+            this._updateSensitivity(false);
             return;
         }
 
@@ -258,7 +260,7 @@ const UnlockDialog = new Lang.Class({
         let query = this._currentQuery;
         this._currentQuery = null;
 
-        this._updateOkButton(false);
+        this._updateSensitivity(false);
 
         this._userVerifier.answerQuery(query, this._promptEntry.text);
     },



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