diff --git a/.github/workflows/windows-release-build.yml b/.github/workflows/windows-release-build.yml index b9516c4df..271d212c7 100644 --- a/.github/workflows/windows-release-build.yml +++ b/.github/workflows/windows-release-build.yml @@ -111,6 +111,7 @@ jobs: set -x mkdir -p ~/win-cross cd engine/ + sudo apt-get install python3-launchpadlib sudo add-apt-repository ppa:savoury1/backports sudo apt-get update sudo apt-get install -y python3-pip autoconf \ diff --git a/src/browser/components/tabbrowser/content/tabbrowser-js.patch b/src/browser/components/tabbrowser/content/tabbrowser-js.patch index fa0341034..96a558632 100644 --- a/src/browser/components/tabbrowser/content/tabbrowser-js.patch +++ b/src/browser/components/tabbrowser/content/tabbrowser-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js -index 5f406ea5d09273c9b70b84eee24c6267f88692f8..c7c3f7a97c79ce2a298e0673d62587619c4d936b 100644 +index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69f8d324d1 100644 --- a/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js @@ -424,11 +424,67 @@ @@ -347,11 +347,12 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..c7c3f7a97c79ce2a298e0673d6258761 if (!tabData.pinned) { this.unpinTab(tab); } else { -@@ -3557,7 +3682,27 @@ +@@ -3557,8 +3682,28 @@ skipLoad: true, preferredRemoteType, }); - +- if (select) { + if (tabData.zenWorkspace) { + tab.setAttribute("zen-workspace-id", tabData.zenWorkspace); + } @@ -373,9 +374,10 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..c7c3f7a97c79ce2a298e0673d6258761 + if (tabData.zenPinnedEntry) { + tab.setAttribute("zen-pinned-entry", tabData.zenPinnedEntry); + } - if (select) { ++ if (select && !tabData.pinned) { tabToSelect = tab; } + } @@ -3570,8 +3715,8 @@ // inserted in the DOM. If the tab is not yet in the DOM, // just insert it in the right place from the start. diff --git a/src/zen/tabs/ZenPinnedTabManager.mjs b/src/zen/tabs/ZenPinnedTabManager.mjs index de4932897..1f2f27450 100644 --- a/src/zen/tabs/ZenPinnedTabManager.mjs +++ b/src/zen/tabs/ZenPinnedTabManager.mjs @@ -195,15 +195,7 @@ pinsToCreate.delete(pinId); if (lazy.zenPinnedTabRestorePinnedTabsToPinnedUrl && init) { - tab.addEventListener( - 'SSTabRestored', - () => { - this._resetTabToStoredState(event.target); - }, - { - once: true, - } - ); + this._resetTabToStoredState(tab); } } else { // This is a pinned tab that no longer has a corresponding pin @@ -566,7 +558,7 @@ } } - async _resetTabToStoredState(tab) { + _resetTabToStoredState(tab) { const id = tab.getAttribute('zen-pin-id'); if (!id) { return; @@ -580,13 +572,19 @@ const tabState = SessionStore.getTabState(tab); const state = JSON.parse(tabState); - state.entries = [ - { - url: pin.url, - title: pin.title, - triggeringPrincipal_base64: lazy.E10SUtils.SERIALIZED_SYSTEMPRINCIPAL, - }, - ]; + const foundEntryIndex = state.entries?.findIndex((entry) => entry.url === pin.url); + if (!foundEntryIndex || foundEntryIndex === -1) { + state.entries = [ + { + url: pin.url, + title: pin.title, + triggeringPrincipal_base64: lazy.E10SUtils.SERIALIZED_SYSTEMPRINCIPAL, + }, + ]; + } else { + // Remove everything except the entry we want to keep + state.entries = [state.entries[foundEntryIndex]]; + } state.image = pin.iconUrl || null; state.index = 0; diff --git a/src/zen/tabs/zen-tabs/vertical-tabs-topbar.inc.css b/src/zen/tabs/zen-tabs/vertical-tabs-topbar.inc.css index 1e0517c5b..8a4280a06 100644 --- a/src/zen/tabs/zen-tabs/vertical-tabs-topbar.inc.css +++ b/src/zen/tabs/zen-tabs/vertical-tabs-topbar.inc.css @@ -1,4 +1,5 @@ height: var(--zen-toolbar-height); +z-index: 1; @media -moz-pref('zen.view.hide-window-controls') { & { @@ -15,7 +16,7 @@ height: var(--zen-toolbar-height); &:not([zen-has-hover='true']):not([has-popup-menu]):not(:focus-within):not(:has(*:is([panelopen='true'], [open='true']))) { transition-delay: 0.2s; - height: var(--zen-element-separation); + height: calc(var(--zen-element-separation) + 0.5px); overflow: hidden; opacity: 0; & > * {