diff --git a/src/ZenViewSplitter.mjs b/src/ZenViewSplitter.mjs
index 30f2016..f23762e 100644
--- a/src/ZenViewSplitter.mjs
+++ b/src/ZenViewSplitter.mjs
@@ -109,18 +109,6 @@ var gZenViewSplitter = new class {
});
}
- /**
- * Inserts the split link into the context menu.
- */
- insertSplitLinkIntoContextMenu() {
- const element = window.MozXULElement.parseXULToFragment(`
-
-
- `);
- document.getElementById("context-stripOnShareLink").after(element);
- }
-
/**
* Inserts the split view tab context menu item.
*/
@@ -139,7 +127,6 @@ var gZenViewSplitter = new class {
* Initializes the context menu.
*/
initializeContextMenu() {
- this.insertSplitLinkIntoContextMenu();
this.insertSplitViewTabContextMenu();
this.insetUpdateContextMenuItems();
}
diff --git a/src/ZenWorkspaces.mjs b/src/ZenWorkspaces.mjs
index 5ef0a68..8132958 100644
--- a/src/ZenWorkspaces.mjs
+++ b/src/ZenWorkspaces.mjs
@@ -71,9 +71,12 @@ var ZenWorkspaces = {
activeWorkspace.used = true;
await this.saveWorkspaces();
}
- await this.changeWorkspace(activeWorkspace, true);
+ window.SessionStore.promiseInitialized.then(() => {
+ this.changeWorkspace(activeWorkspace, true);
+ });
}
this._initializeWorkspaceIcons();
+ this._initializeWorkspaceTabContextMenus();
}
},
@@ -431,6 +434,44 @@ var ZenWorkspaces = {
let nextWorkspace = workspaces.workspaces[workspaceIndex + 1] || workspaces.workspaces[0];
this.changeWorkspace(nextWorkspace);
},
+
+ _initializeWorkspaceTabContextMenus() {
+ const contextMenu = document.getElementById("tabContextMenu");
+ const element = window.MozXULElement.parseXULToFragment(`
+
+
+ `);
+ document.getElementById("context_closeDuplicateTabs").after(element);
+
+ contextMenu.addEventListener("popupshowing", async (event) => {
+ const menu = document.getElementById("context-zen-change-workspace-tab").querySelector("menupopup");
+ menu.innerHTML = "";
+ const workspaces = await this._workspaces();
+ const activeWorkspace = workspaces.workspaces.find(workspace => workspace.used);
+ for (let workspace of workspaces.workspaces) {
+ const menuItem = window.MozXULElement.parseXULToFragment(`
+
+ `);
+ if (workspace.uuid === activeWorkspace.uuid) {
+ menuItem.querySelector("menuitem").setAttribute("disabled", "true");
+ }
+ menu.appendChild(menuItem);
+ }
+ });
+ },
+
+ async changeTabWorkspace(workspaceID) {
+ const tabs = TabContextMenu.contextTab.multiselected
+ ? gBrowser.selectedTabs : [TabContextMenu.contextTab];
+ for (let tab of tabs) {
+ tab.setAttribute("zen-workspace-id", workspaceID);
+ }
+ const workspaces = await this._workspaces();
+ await this.changeWorkspace(workspaces.workspaces.find(workspace => workspace.uuid === workspaceID));
+ },
};
ZenWorkspaces.init();