[gnome-shell] Background: ignore cancellation errors



commit 0122cee0ae6aca3425de3acf59e50847f7d56deb
Author: Ray Strode <rstrode redhat com>
Date:   Wed Feb 20 01:55:56 2013 +0100

    Background: ignore cancellation errors
    
    If the request cancellable is cancelled, the requesting background was
    destroyed, so don't bother reporting the result.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=694227

 js/ui/background.js |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/background.js b/js/ui/background.js
index 9ee6cb6..4fda6f4 100644
--- a/js/ui/background.js
+++ b/js/ui/background.js
@@ -164,6 +164,9 @@ const BackgroundCache = new Lang.Class({
         if (candidateContent) {
             content = candidateContent.copy(params.monitorIndex, params.effects);
 
+            if (params.cancellable && params.cancellable.is_cancelled())
+                content = NULL;
+
             if (params.onFinished)
                 params.onFinished(content);
         } else {
@@ -264,7 +267,6 @@ const Background = new Lang.Class({
 
     _destroy: function() {
         this._cancellable.cancel();
-        this._cancellable = null;
 
         if (this._animationUpdateTimeoutId) {
             GLib.source_remove (this._animationUpdateTimeoutId);
@@ -458,7 +460,7 @@ const Background = new Lang.Class({
                                              onLoaded: Lang.bind(this, function(animation) {
                                                  this._animation = animation;
 
-                                                 if (!this._animation) {
+                                                 if (!this._animation || this._cancellable.is_cancelled()) {
                                                      this._setLoaded();
                                                      return;
                                                  }
@@ -477,8 +479,7 @@ const Background = new Lang.Class({
                                       cancellable: this._cancellable,
                                       onFinished: Lang.bind(this, function(content) {
                                           if (!content) {
-                                              if (this._cancellable &&
-                                                  !this._cancellable.is_cancelled())
+                                              if (!this._cancellable.is_cancelled())
                                                   this._loadAnimation(filename);
                                               return;
                                           }


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