From 030a22d795e595fd4600ef8e95a1fa0a7a20dfbd Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 21 Aug 2015 09:09:39 -0400 Subject: [PATCH] authPrompt: stop spinner after its hidden The code previously tried to stop spinner after it was hidden, but due to an incorrect check was only stoppig it after it was shown. Also, it was only stopping after hiding due to an animation, and failing to stop it in the non-animated case. This left the spinner hidden and running while VT switched away from the login screen, only stopping when the auth prompt was reset when switching back. https://bugzilla.gnome.org/show_bug.cgi?id=753891 --- data/theme/gnome-shell-sass | 2 +- js/gdm/authPrompt.js | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/data/theme/gnome-shell-sass b/data/theme/gnome-shell-sass index 034d0b775..172666394 160000 --- a/data/theme/gnome-shell-sass +++ b/data/theme/gnome-shell-sass @@ -1 +1 @@ -Subproject commit 034d0b775b12f2212ba2028b153e4c2f31e6fa65 +Subproject commit 172666394146a88445811e86ce37a3f36775004c diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js index c30789e20..465cb3dfc 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js @@ -281,6 +281,12 @@ const AuthPrompt = new Lang.Class({ if (oldActor) Tweener.removeTweens(oldActor); + let wasSpinner; + if (oldActor == this._spinner.actor) + wasSpinner = true; + else + wasSpinner = false; + let isSpinner; if (actor == this._spinner.actor) isSpinner = true; @@ -290,6 +296,11 @@ const AuthPrompt = new Lang.Class({ if (this._defaultButtonWellActor != actor && oldActor) { if (!animate) { oldActor.opacity = 0; + + if (wasSpinner) { + if (this._spinner) + this._spinner.stop(); + } } else { Tweener.addTween(oldActor, { opacity: 0, @@ -298,7 +309,7 @@ const AuthPrompt = new Lang.Class({ transition: 'linear', onCompleteScope: this, onComplete: function() { - if (isSpinner) { + if (wasSpinner) { if (this._spinner) this._spinner.stop(); }