diff --git a/js/ui/animation.js b/js/ui/animation.js index 6002a3754..5cd9f3a20 100644 --- a/js/ui/animation.js +++ b/js/ui/animation.js @@ -141,12 +141,15 @@ class Spinner extends AnimatedIcon { _init(size, params) { params = Params.parse(params, { animate: false, + hideOnStop: false, }); let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg'); super._init(file, size); this.opacity = 0; this._animate = params.animate; + this._hideOnStop = params.hideOnStop; + this.visible = !this._hideOnStop; } _onDestroy() { @@ -156,6 +159,7 @@ class Spinner extends AnimatedIcon { play() { this.remove_all_transitions(); + this.show(); if (this._animate) { super.play(); @@ -179,11 +183,18 @@ class Spinner extends AnimatedIcon { opacity: 0, duration: SPINNER_ANIMATION_TIME, mode: Clutter.AnimationMode.LINEAR, - onComplete: () => super.stop(), + onComplete: () => { + super.stop(); + if (this._hideOnStop) + this.hide(); + }, }); } else { this.opacity = 0; super.stop(); + + if (this._hideOnStop) + this.hide(); } } });