diff --git a/l10n b/l10n
index b109ad083..1a15769b8 160000
--- a/l10n
+++ b/l10n
@@ -1 +1 @@
-Subproject commit b109ad0835e08402fe76f8765789966139ebb432
+Subproject commit 1a15769b8d5add458f7e5716c337e471687f3f25
diff --git a/package.json b/package.json
index e87dd6543..91d2afd4c 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,7 @@
"export": "surfer export",
"init": "npm run download && npm run bootstrap && npm run import",
"download": "surfer download",
- "bootstrap": "surfer bootstrap && surfer bootstrap",
+ "bootstrap": "surfer bootstrap",
"package": "surfer package",
"update-ff": "python3 scripts/update_ff.py",
"update-ff:raw": "surfer update",
diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js
index b9ec6fd81..102fc4a3f 100644
--- a/src/browser/app/profile/zen-browser.js
+++ b/src/browser/app/profile/zen-browser.js
@@ -198,7 +198,6 @@ pref('zen.startup.smooth-scroll-in-tabs', true);
pref('zen.workspaces.disabled_for_testing', false);
pref('zen.workspaces.hide-deactivated-workspaces', false);
pref('zen.workspaces.hide-default-container-indicator', true);
-pref('zen.workspaces.individual-pinned-tabs', true);
pref('zen.workspaces.show-icon-strip', true);
pref('zen.workspaces.force-container-workspace', false);
pref('zen.workspaces.open-new-tab-if-last-unpinned-tab-is-closed', false);
diff --git a/src/browser/base/content/zen-styles/zen-decks.css b/src/browser/base/content/zen-styles/zen-decks.css
index 80e26070d..c89cc0727 100644
--- a/src/browser/base/content/zen-styles/zen-decks.css
+++ b/src/browser/base/content/zen-styles/zen-decks.css
@@ -247,7 +247,7 @@
cursor: pointer;
appearance: none;
outline: none;
- color: var(--button-primary-color);
+ color: var(--button-primary-bgcolor);
border-top-left-radius: 0;
border-top-right-radius: 0;
diff --git a/src/browser/base/zen-components/ZenViewSplitter.mjs b/src/browser/base/zen-components/ZenViewSplitter.mjs
index b327fcc17..024a69e58 100644
--- a/src/browser/base/zen-components/ZenViewSplitter.mjs
+++ b/src/browser/base/zen-components/ZenViewSplitter.mjs
@@ -51,7 +51,7 @@ class SplitNode extends SplitLeafNode {
addChild(child) {
child.parent = this;
- this._children.push(child);
+ this._children.unshift(child);
}
}
@@ -1511,7 +1511,8 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
}
const containerRect = this.fakeBrowser.getBoundingClientRect();
- const dropTarget = document.elementFromPoint((containerRect.left + containerRect.width) * 1.5, event.clientY);
+ const padding = Services.prefs.getIntPref('zen.theme.content-element-separation', 0);
+ const dropTarget = document.elementFromPoint(containerRect.left + containerRect.width + padding + 5, event.clientY);
const browser = dropTarget?.closest('browser');
if (!browser) {
@@ -1531,7 +1532,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
// Calculate which side of the target browser the drop occurred
// const browserRect = browser.getBoundingClientRect();
// const hoverSide = this.calculateHoverSide(event.clientX, event.clientY, browserRect);
- const hoverSide = 'right';
+ const hoverSide = 'left';
if (droppedOnTab.splitView) {
// Add to existing split view
diff --git a/src/browser/base/zen-components/ZenWorkspaces.mjs b/src/browser/base/zen-components/ZenWorkspaces.mjs
index 6a63c1372..cc558e72e 100644
--- a/src/browser/base/zen-components/ZenWorkspaces.mjs
+++ b/src/browser/base/zen-components/ZenWorkspaces.mjs
@@ -605,6 +605,7 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
this._selectStartPage();
this._fixTabPositions();
this._resolveInitialized();
+ this._clearAnyZombieTabs(); // Dont call with await
}
}
@@ -652,6 +653,26 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
return !window.toolbar.visible || Services.prefs.getBoolPref('browser.tabs.closeWindowWithLastTab');
}
+ async _clearAnyZombieTabs() {
+ const tabs = this.allStoredTabs;
+ const workspaces = await this._workspaces();
+ for (let tab of tabs) {
+ const workspaceID = tab.getAttribute('zen-workspace-id');
+ if (
+ workspaceID &&
+ !tab.hasAttribute('zen-essential') &&
+ !workspaces.workspaces.find((workspace) => workspace.uuid === workspaceID)
+ ) {
+ // Remove any tabs where their workspace doesn't exist anymore
+ gBrowser.removeTab(tab, {
+ animate: false,
+ skipSessionStore: true,
+ closeWindowWithLastTab: false,
+ });
+ }
+ }
+ }
+
handleTabBeforeClose(tab) {
if (!this.workspaceEnabled || this.__contextIsDelete || this._removedByStartupPage) {
return null;
@@ -1382,10 +1403,10 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
}
_deleteAllTabsInWorkspace(workspaceID) {
- for (let tab of gBrowser.tabs) {
+ for (let tab of this.allStoredTabs) {
if (tab.getAttribute('zen-workspace-id') === workspaceID) {
gBrowser.removeTab(tab, {
- animate: true,
+ animate: false,
skipSessionStore: true,
closeWindowWithLastTab: false,
});
@@ -1508,12 +1529,12 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
const previousWorkspace = await this.getActiveWorkspace();
alwaysChange = alwaysChange || onInit;
+ this.activeWorkspace = window.uuid;
if (previousWorkspace && previousWorkspace.uuid === window.uuid && !alwaysChange) {
this._cancelSwipeAnimation();
return;
}
- this.activeWorkspace = window.uuid;
const containerId = window.containerTabId?.toString();
const workspaces = await this._workspaces();
@@ -1995,6 +2016,7 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
// Switch workspace if needed
if (workspaceID && workspaceID !== activeWorkspace.uuid && parent.ZenWorkspaces._hasInitializedTabsStrip) {
+ const workspaces = await parent.ZenWorkspaces._workspaces();
await parent.ZenWorkspaces.changeWorkspace({ uuid: workspaceID });
}
}
diff --git a/src/browser/components/preferences/zen-settings.js b/src/browser/components/preferences/zen-settings.js
index 7b8e3e10b..19892d0fa 100644
--- a/src/browser/components/preferences/zen-settings.js
+++ b/src/browser/components/preferences/zen-settings.js
@@ -944,11 +944,6 @@ Preferences.addAll([
type: 'bool',
default: true,
},
- {
- id: 'zen.workspaces.individual-pinned-tabs',
- type: 'bool',
- default: true,
- },
{
id: 'zen.workspaces.show-icon-strip',
type: 'bool',
diff --git a/src/browser/components/preferences/zenTabsManagement.inc.xhtml b/src/browser/components/preferences/zenTabsManagement.inc.xhtml
index 490ffef07..458e05120 100644
--- a/src/browser/components/preferences/zenTabsManagement.inc.xhtml
+++ b/src/browser/components/preferences/zenTabsManagement.inc.xhtml
@@ -20,9 +20,6 @@
-