From a757ce48a14e987814ccc23de742a4e4aaebcade Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Sat, 29 Dec 2012 15:25:03 +0100 Subject: [PATCH] ScreenShield: don't reset the lock screen animation if it's already happening When you click Suspend from the user menu, the following things happen: - we lock the screen internally by calling Main.screenShield.lock() and waiting for lock-screen-shown - logind emits a Lock signal, which causes us to lock again - gnome-settings-daemon notices PrepareForSleep, and calls org.gnome.ScreenSaver.Lock, just in case, so we lock once more This means that, if you're lucky, you can see the curtain fall down multiple times, as each .lock() call resets the animation. https://bugzilla.gnome.org/show_bug.cgi?id=690858 --- js/ui/screenShield.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 3ee24ebbc..81d9655ee 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -760,6 +760,10 @@ const ScreenShield = new Lang.Class({ }, _resetLockScreen: function(animateLockScreen, animateLockDialog) { + if (this._lockScreenState == MessageTray.State.SHOWING || + this._lockScreenState == MessageTray.State.SHOWN) + return; + this._ensureLockScreen(); this._lockDialogGroup.scale_x = 1; this._lockDialogGroup.scale_y = 1;