[gnome-shell] background: Update animations when coming back from suspend



commit ccacb5f6de9ae120a3946b6e55d71ad2182dc8f0
Author: Florian Müllner <fmuellner gnome org>
Date:   Fri Oct 21 14:09:32 2016 +0200

    background: Update animations when coming back from suspend
    
    We currently reload animated backgrounds on timezone changes, but
    there are other cases where the time can change unexpectedly and
    the background no longer matches the time of day. One case we can
    easily handle is when coming back from suspend, so do that.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=773265

 js/ui/background.js |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/background.js b/js/ui/background.js
index 762c76c..622a59a 100644
--- a/js/ui/background.js
+++ b/js/ui/background.js
@@ -102,6 +102,7 @@ const Lang = imports.lang;
 const Meta = imports.gi.Meta;
 const Signals = imports.signals;
 
+const LoginManager = imports.misc.loginManager;
 const Main = imports.ui.main;
 const Params = imports.misc.params;
 const Tweener = imports.ui.tweener;
@@ -254,6 +255,13 @@ const Background = new Lang.Class({
                     this._loadAnimation(this._animation.file);
             }));
 
+        LoginManager.getLoginManager().connect('prepare-for-sleep',
+            (lm, aboutToSuspend) => {
+                if (aboutToSuspend)
+                    return;
+                this._refreshAnimation();
+            });
+
         this._settingsChangedSignalId = this._settings.connect('changed', Lang.bind(this, function() {
                                             this.emit('changed');
                                         }));
@@ -282,10 +290,16 @@ const Background = new Lang.Class({
     },
 
     updateResolution: function() {
-        if (this._animation) {
-            this._removeAnimationTimeout();
-            this._updateAnimation();
-        }
+        if (this._animation)
+            this._refreshAnimation();
+    },
+
+    _refreshAnimation: function() {
+        if (!this._animation)
+            return;
+
+        this._removeAnimationTimeout();
+        this._updateAnimation();
     },
 
     _setLoaded: function() {


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