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 @@ -