[gnome-shell] screenShield: Don't wait until the dialog is loaded before opening it



commit 127f10e7a8bbbbd089d217f8cd89971c187ae9c3
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Tue Mar 5 01:51:28 2013 -0500

    screenShield: Don't wait until the dialog is loaded before opening it
    
    If we wait asynchronously, key presses while the shield is opening
    will be dropped in the void.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=686740

 js/gdm/loginDialog.js |   11 +----------
 js/ui/screenShield.js |   14 ++++++--------
 js/ui/unlockDialog.js |    5 -----
 3 files changed, 7 insertions(+), 23 deletions(-)
---
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index b1ee384..e9cb99f 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -1014,7 +1014,7 @@ const LoginDialog = new Lang.Class({
                      function() {
                          // If we're just starting out, start on the right
                          // item.
-                         if (!this.is_loaded) {
+                         if (!this._userManager.is_loaded) {
                              this._userList.jumpToItem(this._timedLoginItem);
                          }
                      },
@@ -1152,15 +1152,6 @@ const LoginDialog = new Lang.Class({
                                   Lang.bind(this, function(userManager, user) {
                                       this._userList.removeUser(user);
                                   }));
-
-        // emitted in idle so caller doesn't have to explicitly check if
-        // it's loaded immediately after construction
-        // (since there's no way the caller could be listening for
-        // 'loaded' yet)
-        Mainloop.idle_add(Lang.bind(this, function() {
-            this.emit('loaded');
-            this.is_loaded = true;
-        }));
     },
 
     _onOpened: function() {
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index 4081219..ada1024 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -892,14 +892,12 @@ const ScreenShield = new Lang.Class({
 
 
             let time = global.get_current_time();
-            this._dialog.connect('loaded', Lang.bind(this, function() {
-                if (!this._dialog.open(time, onPrimary)) {
-                    // This is kind of an impossible error: we're already modal
-                    // by the time we reach this...
-                    log('Could not open login dialog: failed to acquire grab');
-                    this.deactivate(true);
-                }
-            }));
+            if (!this._dialog.open(time, onPrimary)) {
+                // This is kind of an impossible error: we're already modal
+                // by the time we reach this...
+                log('Could not open login dialog: failed to acquire grab');
+                this.deactivate(true);
+            }
 
             this._dialog.connect('failed', Lang.bind(this, this._onUnlockFailed));
             this._dialog.connect('unlocked', Lang.bind(this, this._onUnlockSucceded));
diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
index 775cab5..07cbe4f 100644
--- a/js/ui/unlockDialog.js
+++ b/js/ui/unlockDialog.js
@@ -141,11 +141,6 @@ const UnlockDialog = new Lang.Class({
         let batch = new Batch.Hold();
         this._userVerifier.begin(this._userName, batch);
 
-        GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, function() {
-            this.emit('loaded');
-            return false;
-        }));
-
         Main.ctrlAltTabManager.addGroup(this.dialogLayout, _("Unlock Window"), 'dialog-password-symbolic');
 
         this._idleMonitor = new GnomeDesktop.IdleMonitor();


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