diff --git a/js/ui/animation.js b/js/ui/animation.js index d66eaa404..528fb8220 100644 --- a/js/ui/animation.js +++ b/js/ui/animation.js @@ -54,12 +54,19 @@ var Animation = class { _loadFile(file, width, height) { let [validResourceScale, resourceScale] = this.actor.get_resource_scale(); + let wasPlaying = this._isPlaying; + + if (this._isPlaying) + this.stop(); this._isLoaded = false; this.actor.destroy_all_children(); - if (!validResourceScale) + if (!validResourceScale) { + if (wasPlaying) + this.play(); return; + } let textureCache = St.TextureCache.get_default(); let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; @@ -67,6 +74,9 @@ var Animation = class { scaleFactor, resourceScale, this._animationsLoaded.bind(this)); this.actor.set_child(this._animations); + + if (wasPlaying) + this.play(); } _showFrame(frame) {