diff --git a/chrome/content/zotero/lookup.js b/chrome/content/zotero/lookup.js
index 0a7431aa5..0603b7c38 100644
--- a/chrome/content/zotero/lookup.js
+++ b/chrome/content/zotero/lookup.js
@@ -206,14 +206,20 @@ var Zotero_Lookup = new function () {
}
this.toggleProgress = function(on) {
+ // In Firefox 52.6.0, progressmeters burn CPU at idle on Linux when undetermined, even
+ // if they're hidden. (Being hidden is enough on macOS.)
+ var mode = on ? 'undetermined' : 'determined';
+
//single line
var txtBox = document.getElementById("zotero-lookup-textbox");
txtBox.style.opacity = on ? 0.5 : 1;
txtBox.disabled = !!on;
- document.getElementById("zotero-lookup-progress").setAttribute("collapsed", !on);
+ var p1 = document.getElementById("zotero-lookup-progress");
+ p1.mode = mode;
//multiline
document.getElementById("zotero-lookup-multiline-textbox").disabled = !!on;
- document.getElementById("zotero-lookup-multiline-progress").setAttribute("collapsed", !on);
+ var p2 = document.getElementById("zotero-lookup-multiline-progress");
+ p2.mode = mode;
}
}
diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js
index 5381a5cbc..2a1088e6e 100644
--- a/chrome/content/zotero/xpcom/zotero.js
+++ b/chrome/content/zotero/xpcom/zotero.js
@@ -1833,7 +1833,19 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
else {
label.hidden = true;
}
- var progressMeter = win.ZoteroPane.document.getElementById('zotero-pane-progressmeter')
+ // This is the craziest thing. In Firefox 52.6.0, the very presence of this line
+ // causes Zotero on Linux to burn 5% CPU at idle, even if everything below it in
+ // the block is commented out. Same if the progressmeter itself is hidden="true".
+ // For some reason it also doesn't seem to work to set the progressmeter to
+ // 'determined' when hiding, which we're doing in lookup.js. So instead, create a new
+ // progressmeter each time and delete it in _hideWindowZoteroPaneOverlay().
+ //
+ //let progressMeter = win.ZoteroPane.document.getElementById('zotero-pane-progressmeter');
+ let doc = win.ZoteroPane.document;
+ let container = doc.getElementById('zotero-pane-progressmeter-container');
+ let progressMeter = doc.createElement('progressmeter');
+ progressMeter.id = 'zotero-pane-progressmeter';
+ progressMeter.setAttribute('mode', 'undetermined');
if (determinate) {
progressMeter.mode = 'determined';
progressMeter.value = 0;
@@ -1842,6 +1854,7 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
else {
progressMeter.mode = 'undetermined';
}
+ container.appendChild(progressMeter);
_showWindowZoteroPaneOverlay(win.ZoteroPane.document);
win.ZoteroPane.document.getElementById('zotero-pane-overlay-deck').selectedIndex = 0;
@@ -1929,6 +1942,12 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
doc.getElementById('zotero-pane-tab-catcher-top').hidden = true;
doc.getElementById('zotero-pane-tab-catcher-bottom').hidden = true;
doc.getElementById('zotero-pane-overlay').hidden = true;
+
+ // See note in showZoteroPaneProgressMeter()
+ let pm = doc.getElementById('zotero-pane-progressmeter');
+ if (pm) {
+ pm.parentNode.removeChild(pm);
+ }
}
diff --git a/chrome/content/zotero/zoteroPane.js b/chrome/content/zotero/zoteroPane.js
index e814727cf..e41b56855 100644
--- a/chrome/content/zotero/zoteroPane.js
+++ b/chrome/content/zotero/zoteroPane.js
@@ -2256,10 +2256,10 @@ var ZoteroPane = new function()
return;
}
var spinner = document.getElementById('zotero-tb-search-spinner');
- spinner.style.visibility = 'visible';
+ spinner.style.display = 'inline';
var searchVal = search.value;
yield this.itemsView.setFilter('search', searchVal);
- spinner.style.visibility = 'hidden';
+ spinner.style.display = 'none';
if (runAdvanced) {
this.clearItemsPaneMessage();
}
diff --git a/chrome/content/zotero/zoteroPane.xul b/chrome/content/zotero/zoteroPane.xul
index b86764fc1..e02d0d624 100644
--- a/chrome/content/zotero/zoteroPane.xul
+++ b/chrome/content/zotero/zoteroPane.xul
@@ -170,7 +170,7 @@
&zotero.lookup.description;
-
+
-
+
@@ -207,7 +207,7 @@
-
+
-
+
-
+