73 lines
3.9 KiB
Diff
73 lines
3.9 KiB
Diff
From ec6facb9e76c916b3faa78af568424694c8da133 Mon Sep 17 00:00:00 2001
|
|
From: Ray Strode <rstrode@redhat.com>
|
|
Date: Wed, 26 Feb 2014 14:35:38 -0500
|
|
Subject: [PATCH 1/4] background: always copy background content when loading
|
|
into cache
|
|
|
|
Copying is actually a lightweight operation, so trying to avoid it just adds
|
|
code complexity for little gain.
|
|
|
|
Based on work from Jasper St. Pierre <jstpierre@macheye.net>
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=722149
|
|
---
|
|
js/ui/background.js | 15 ++++-----------
|
|
1 file changed, 4 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/js/ui/background.js b/js/ui/background.js
|
|
index 3a7541c..3fe279d 100644
|
|
--- a/js/ui/background.js
|
|
+++ b/js/ui/background.js
|
|
@@ -143,8 +143,7 @@ const BackgroundCache = new Lang.Class({
|
|
for (let i = 0; i < this._pendingFileLoads.length; i++) {
|
|
if (this._pendingFileLoads[i].filename == params.filename &&
|
|
this._pendingFileLoads[i].style == params.style) {
|
|
- this._pendingFileLoads[i].callers.push({ shouldCopy: true,
|
|
- monitorIndex: params.monitorIndex,
|
|
+ this._pendingFileLoads[i].callers.push({ monitorIndex: params.monitorIndex,
|
|
effects: params.effects,
|
|
onFinished: params.onFinished });
|
|
return;
|
|
@@ -153,14 +152,11 @@ const BackgroundCache = new Lang.Class({
|
|
|
|
this._pendingFileLoads.push({ filename: params.filename,
|
|
style: params.style,
|
|
- callers: [{ shouldCopy: false,
|
|
- monitorIndex: params.monitorIndex,
|
|
+ callers: [{ monitorIndex: params.monitorIndex,
|
|
effects: params.effects,
|
|
onFinished: params.onFinished }] });
|
|
|
|
- let content = new Meta.Background({ meta_screen: global.screen,
|
|
- monitor: params.monitorIndex,
|
|
- effects: params.effects });
|
|
+ let content = new Meta.Background({ meta_screen: global.screen });
|
|
|
|
content.load_file_async(params.filename,
|
|
params.style,
|
|
@@ -171,7 +167,6 @@ const BackgroundCache = new Lang.Class({
|
|
content.load_file_finish(result);
|
|
|
|
this._monitorFile(params.filename);
|
|
- this._images.push(content);
|
|
} catch(e) {
|
|
content = null;
|
|
}
|
|
@@ -186,12 +181,10 @@ const BackgroundCache = new Lang.Class({
|
|
if (pendingLoad.callers[j].onFinished) {
|
|
let newContent;
|
|
|
|
- if (content && pendingLoad.callers[j].shouldCopy) {
|
|
+ if (content) {
|
|
newContent = content.copy(pendingLoad.callers[j].monitorIndex,
|
|
pendingLoad.callers[j].effects);
|
|
this._images.push(newContent);
|
|
- } else {
|
|
- newContent = content;
|
|
}
|
|
|
|
pendingLoad.callers[j].onFinished(newContent);
|
|
--
|
|
1.9.0
|
|
|