commit fbb7f796890800b9b490bbda570db5eff480a750
parent b001c5433f1dc755118a99d44ff6fd9ea31b9031
Author: Simon Kornblith <simon@simonster.com>
Date: Thu, 3 Feb 2011 05:35:47 +0000
appropriately handle case where tab is loaded before window finishes loading
Diffstat:
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/chrome/content/zotero/tab.js b/chrome/content/zotero/tab.js
@@ -41,23 +41,30 @@ var ZoteroTab = new function()
if(browserIndex === -1) return;
// initialize ZoteroPane and swap out old window ZoteroPane object
- ZoteroPane.init();
-
- // swap window ZoteroPane with ZoteroPane from tab
- window.ZoteroPane_Overlay = window.ZoteroPane;
- window.ZoteroPane_Tab = ZoteroPane;
- window.ZoteroPane = ZoteroPane;
+ if(window.ZoteroPane) {
+ window.ZoteroPane_Overlay = window.ZoteroPane;
+ window.ZoteroPane_Tab = ZoteroPane;
+ window.ZoteroPane = ZoteroPane;
+ } else {
+ window.addEventListener("load", function() {
+ window.ZoteroPane_Overlay = window.ZoteroPane;
+ window.ZoteroPane_Tab = ZoteroPane;
+ window.ZoteroPane = ZoteroPane;
+ }, false);
+ }
// get tab for browser
var tab = window.gBrowser.tabs[browserIndex];
if(window.gBrowser.selectedTab === tab) {
// if tab is already selected, init now
+ ZoteroPane.init();
ZoteroPane.makeVisible();
} else {
// otherwise, add a handler to wait until this tab is selected
var listener = function(event) {
if(event.target !== tab) return;
window.gBrowser.tabContainer.removeEventListener("TabSelect", listener, false);
+ ZoteroPane.init();
ZoteroPane.makeVisible();
}
window.gBrowser.tabContainer.addEventListener("TabSelect", listener, false);