diff --git a/src/browser/base/content/ZenWorkspaces.mjs b/src/browser/base/content/ZenWorkspaces.mjs
index f496bd46c..3d3d715e6 100644
--- a/src/browser/base/content/ZenWorkspaces.mjs
+++ b/src/browser/base/content/ZenWorkspaces.mjs
@@ -5,12 +5,12 @@ var ZenWorkspaces = {
if (docElement.getAttribute("chromehidden").includes("toolbar")
|| docElement.getAttribute("chromehidden").includes("menubar")
|| docElement.hasAttribute("privatebrowsingmode")) {
- console.log("!!! ZenWorkspaces is disabled in hidden windows !!!");
+ console.warn("ZenWorkspaces: !!! ZenWorkspaces is disabled in hidden windows !!!");
return; // We are in a hidden window, don't initialize ZenWorkspaces
}
- console.log("Initializing ZenWorkspaces...");
+ console.log("ZenWorkspaces: Initializing ZenWorkspaces...");
await this.initializeWorkspaces();
- console.log("ZenWorkspaces initialized");
+ console.log("ZenWorkspaces: ZenWorkspaces initialized");
},
get workspaceEnabled() {
@@ -57,7 +57,6 @@ var ZenWorkspaces = {
}
if (this.workspaceEnabled) {
let workspaces = await this._workspaces();
- console.log("Workspaces loaded", workspaces);
if (workspaces.workspaces.length === 0) {
await this.createAndSaveWorkspace("Default Workspace", true);
} else {
@@ -101,13 +100,14 @@ var ZenWorkspaces = {
json.workspaces = [];
}
json.workspaces.push(workspaceData);
- console.log("Saving workspace", workspaceData);
+ console.log("ZenWorkspaces: Saving workspace", workspaceData);
await IOUtils.writeJSON(this._storeFile, json);
this._workspaceCache = null;
},
async removeWorkspace(windowID) {
let json = await this._workspaces();
+ console.log("ZenWorkspaces: Removing workspace", windowID);
await this.changeWorkspace(json.workspaces.find(workspace => workspace.uuid !== windowID));
this._deleteAllTabsInWorkspace(windowID);
json.workspaces = json.workspaces.filter(workspace => workspace.uuid !== windowID);
@@ -156,7 +156,7 @@ var ZenWorkspaces = {
element.className = "subviewbutton";
element.setAttribute("tooltiptext", workspace.name);
element.setAttribute("zen-workspace-id", workspace.uuid);
- element.setAttribute("context", "zenWorkspaceActionsMenu");
+ //element.setAttribute("context", "zenWorkspaceActionsMenu");
let childs = window.MozXULElement.parseXULToFragment(`
${this.getWorkspaceIcon(workspace)}
@@ -168,13 +168,14 @@ var ZenWorkspaces = {
`);
- childs.querySelector(".zen-workspace-actions").addEventListener("command", (event) => {
+ childs.querySelector(".zen-workspace-actions").addEventListener("command", ((event) => {
let button = event.target;
+ this._contextMenuId = button.closest("toolbarbutton[zen-workspace-id]").getAttribute("zen-workspace-id");
const popup = button.ownerDocument.getElementById(
"zenWorkspaceActionsMenu"
);
popup.openPopup(button, "after_end");
- });
+ }).bind(this));
element.appendChild(childs);
element.onclick = (async () => {
if (event.target.closest(".zen-workspace-actions")) {
@@ -332,7 +333,7 @@ var ZenWorkspaces = {
workspace.used = workspace.uuid === window.uuid;
}
this.unsafeSaveWorkspaces(workspaces);
- let shownTabs = 0;
+ console.log("ZenWorkspaces: Changing workspace to", window.uuid);
for (let tab of gBrowser.tabs) {
if (tab.getAttribute("zen-workspace-id") === window.uuid && !tab.pinned) {
if (!firstTab) {
@@ -340,10 +341,9 @@ var ZenWorkspaces = {
gBrowser.selectedTab = firstTab;
}
gBrowser.showTab(tab);
- shownTabs++;
}
}
- if (shownTabs === 0) {
+ if (typeof firstTab === "undefined") {
this._createNewTabForWorkspace(window);
}
for (let tab of gBrowser.tabs) {
@@ -394,14 +394,9 @@ var ZenWorkspaces = {
// Context menu management
_contextMenuId: null,
- async updateContextMenu(event) {
- let target = event.target;
- let workspace = target.closest("[zen-workspace-id]");
- if (!workspace) {
- return;
- }
- _contextMenuId = workspace.getAttribute("zen-workspace-id");
- document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${_contextMenuId}"] .zen-workspace-actions`).setAttribute("active", "true");
+ async updateContextMenu(_) {
+ console.assert(this._contextMenuId, "No context menu ID set");
+ document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${this._contextMenuId}"] .zen-workspace-actions`).setAttribute("active", "true");
const workspaces = await this._workspaces();
let deleteMenuItem = document.getElementById("context_zenDeleteWorkspace");
if (workspaces.workspaces.length <= 1) {
@@ -412,7 +407,7 @@ var ZenWorkspaces = {
},
onContextMenuClose() {
- let target = document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${_contextMenuId}"] .zen-workspace-actions`);
+ let target = document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${this._contextMenuId}"] .zen-workspace-actions`);
if (target) {
target.removeAttribute("active");
}
@@ -420,7 +415,7 @@ var ZenWorkspaces = {
},
async contextDelete() {
- await this.removeWorkspace(_contextMenuId);
+ await this.removeWorkspace(this._contextMenuId);
}
};
diff --git a/src/browser/base/content/zen-popupset.inc.xhtml b/src/browser/base/content/zen-popupset.inc.xhtml
index 0ec9fffbd..21a17b677 100644
--- a/src/browser/base/content/zen-popupset.inc.xhtml
+++ b/src/browser/base/content/zen-popupset.inc.xhtml
@@ -127,7 +127,7 @@
\ No newline at end of file