From ccacb5f6de9ae120a3946b6e55d71ad2182dc8f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 21 Oct 2016 14:09:32 +0200 Subject: [PATCH] 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 file changed, 18 insertions(+), 4 deletions(-) diff --git a/js/ui/background.js b/js/ui/background.js index 762c76c6e..622a59a6c 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() {