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

Bug#773056: unblock: gnome-shell/3.14.2-3



Le samedi 13 décembre 2014 à 20:50 +0100, Josselin Mouette a écrit :
> gnome-shell (3.14.2-3) unstable; urgency=medium
> 
>   * Add missing dependency on mutter. Closes: #764715.
>   * 10_background_race.patch: fix a race condition when loading two 
>     backgrounds made of different XML files.

Sorry, forgot the diff.

-- 
 .''`.      Josselin Mouette
: :' :
`. `'
  `-
Index: debian/control
===================================================================
--- debian/control	(révision 44030)
+++ debian/control	(copie de travail)
@@ -95,6 +95,7 @@
          gnome-themes-standard,
          gnome-backgrounds (>= 3.13.90),
          gsettings-desktop-schemas (>= 3.11),
+         mutter (>= 3.14.2),
          python (>= 2.6),
          telepathy-mission-control-5,
 Recommends: gkbd-capplet,
Index: debian/control.in
===================================================================
--- debian/control.in	(révision 44030)
+++ debian/control.in	(copie de travail)
@@ -91,6 +91,7 @@
          gnome-themes-standard,
          gnome-backgrounds (>= 3.13.90),
          gsettings-desktop-schemas (>= 3.11),
+         mutter (>= 3.14.2),
          python (>= 2.6),
          telepathy-mission-control-5,
 Recommends: gkbd-capplet,
Index: debian/changelog
===================================================================
--- debian/changelog	(révision 44030)
+++ debian/changelog	(copie de travail)
@@ -1,3 +1,11 @@
+gnome-shell (3.14.2-3) unstable; urgency=medium
+
+  * Add missing dependency on mutter. Closes: #764715.
+  * 10_background_race.patch: fix a race condition when loading two 
+    backgrounds made of different XML files.
+
+ -- Josselin Mouette <joss@debian.org>  Fri, 12 Dec 2014 22:32:31 +0100
+
 gnome-shell (3.14.2-2) unstable; urgency=medium
 
   * Add debian/patches/51-Delay-caribou-daemon-invocation.patch: Delay the
Index: debian/patches/series
===================================================================
--- debian/patches/series	(révision 44030)
+++ debian/patches/series	(copie de travail)
@@ -1,6 +1,7 @@
 01_network_list.patch
 02_auth_prompt.patch
 #10-make-NetworkManager-optional.patch
+10_background_race.patch
 27-nm-libexec-path.patch
 #30-remoteMenu-Prevent-the-shell-from-becoming-unrespons.patch
 41-handle-logind-fail.patch
Index: debian/patches/10_background_race.patch
===================================================================
--- debian/patches/10_background_race.patch	(révision 0)
+++ debian/patches/10_background_race.patch	(révision 44045)
@@ -0,0 +1,71 @@
+From 07180bef4d7264789b389b3ac9c6426ce269436b Mon Sep 17 00:00:00 2001
+From: Josselin Mouette <joss@debian.org>
+Date: Fri, 12 Dec 2014 21:57:11 +0100
+Subject: [PATCH] background: fix a race condition when loading several
+ animations
+
+When loading several animations at the same time, the last call
+overrides the result for all of them.
+
+This commit caches all animations separately based on the source's
+schemas.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=741453
+---
+ js/ui/background.js | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/js/ui/background.js b/js/ui/background.js
+index ad0cacc..ad75c65 100644
+--- a/js/ui/background.js
++++ b/js/ui/background.js
+@@ -134,6 +134,7 @@ const BackgroundCache = new Lang.Class({
+         this._pendingFileLoads = [];
+         this._fileMonitors = {};
+         this._backgroundSources = {};
++        this._animations = {};
+     },
+ 
+     monitorFile: function(filename) {
+@@ -152,12 +153,13 @@ const BackgroundCache = new Lang.Class({
+ 
+     getAnimation: function(params) {
+         params = Params.parse(params, { filename: null,
++                                        settingsSchema: null,
+                                         onLoaded: null });
+ 
+-        if (this._animationFilename == params.filename) {
++        if (this._animations[params.settingsSchema] && this._animations[params.settingsSchema].filename == params.filename) {
+             if (params.onLoaded) {
+                 let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, function() {
+-                    params.onLoaded(this._animation);
++                    params.onLoaded(this._animations[params.settingsSchema]);
+                     return GLib.SOURCE_REMOVE;
+                 }));
+                 GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
+@@ -168,12 +170,11 @@ const BackgroundCache = new Lang.Class({
+         let animation = new Animation({ filename: params.filename });
+ 
+         animation.load(Lang.bind(this, function() {
+-                           this._animationFilename = params.filename;
+-                           this._animation = animation;
++                           this._animations[params.settingsSchema] = animation;
+ 
+                            if (params.onLoaded) {
+                                let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, function() {
+-                                   params.onLoaded(this._animation);
++                                   params.onLoaded(this._animations[params.settingsSchema]);
+                                    return GLib.SOURCE_REMOVE;
+                                }));
+                                GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
+@@ -392,6 +393,7 @@ const Background = new Lang.Class({
+ 
+     _loadAnimation: function(filename) {
+         this._cache.getAnimation({ filename: filename,
++                                   settingsSchema: this._settings.schema_id,
+                                              onLoaded: Lang.bind(this, function(animation) {
+                                                  this._animation = animation;
+ 
+-- 
+2.1.3
+

Reply to: