[gnome-shell/gnome-3-6] ScreenShield: fix code to detect missing unlock dialog



commit 678d3623ed2a9f1cb3a32f4effa38e7d4ec29927
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Tue Nov 6 23:41:51 2012 +0100

    ScreenShield: fix code to detect missing unlock dialog
    
    If the session mode has no locking support, screenshield had code to
    unlock automatically, but it did so by checking the return value of
    the constructor, instead of checking if the constructor was actually
    callable, so it would get a TypeError before reaching the check.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=687708

 js/ui/screenShield.js |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index 752eeaa..a6f825a 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -658,13 +658,15 @@ const ScreenShield = new Lang.Class({
     _ensureUnlockDialog: function(onPrimary) {
         if (!this._dialog) {
             let constructor = Main.sessionMode.unlockDialog;
-            this._dialog = new constructor(this._lockDialogGroup);
-            if (!this._dialog) {
+            if (!constructor) {
                 // This session mode has no locking capabilities
                 this.unlock();
                 return;
             }
 
+            this._dialog = new constructor(this._lockDialogGroup);
+
+
             let time = global.get_current_time();
             this._dialog.connect('loaded', Lang.bind(this, function() {
                 if (!this._dialog.open(time, onPrimary)) {



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