diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 917be7c8f..3ee24ebbc 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) {