[gnome-shell] ScreenShield: honor lock-delay GSettings key



commit d525d0234876ae308e8fec8b935b400717df818d
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Tue Dec 25 01:13:52 2012 +0100

    ScreenShield: honor lock-delay GSettings key
    
    org.gnome.desktop.screensaver.lock-delay contains the grace period
    of the screensaver: if deactivated within that many seconds from the
    start of the idle period, the shell should not prompt for a password.
    This setting correspond to the "Lock screen after" combo in screen
    and privacy panels.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=690766

 js/ui/screenShield.js |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index 917be7c..3ee24eb 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -25,6 +25,7 @@ const Util = imports.misc.util;
 
 const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
 const LOCK_ENABLED_KEY = 'lock-enabled';
+const LOCK_DELAY_KEY = 'lock-delay';
 
 const CURTAIN_SLIDE_TIME = 0.3;
 // fraction of screen height the arrow must reach before completing
@@ -636,7 +637,11 @@ const ScreenShield = new Lang.Class({
                 let lightboxWasShown = this._lightbox.shown;
                 this._lightbox.hide();
 
-                let shouldLock = lightboxWasShown && this._settings.get_boolean(LOCK_ENABLED_KEY);
+                // GLib.get_monotonic_time() returns microseconds, convert to seconds
+                let elapsedTime = (GLib.get_monotonic_time() - this._activationTime) / 1000000;
+                let shouldLock = lightboxWasShown &&
+                    this._settings.get_boolean(LOCK_ENABLED_KEY) &&
+                    (elapsedTime >= this._settings.get_boolean(LOCK_DELAY_KEY));
                 if (shouldLock || this._isLocked) {
                     this.lock(false);
                 } else if (this._isActive) {



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