diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index 00d8979ec..7aca33bc9 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -31,6 +31,7 @@ pref("browser.privateWindowSeparation.enabled", false); // Mica pref("widget.windows.mica", true); pref("widget.windows.mica.popups", true); +pref("widget.windows.mica.toplevel-backdrop", 2); #endif pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true); @@ -142,10 +143,6 @@ pref('zen.view.experimental-rounded-view', false); pref('zen.view.experimental-rounded-view', true); #endif -#ifdef XP_WIN -pref('zen.widget.windows.acrylic', true); -#endif - // Glance pref('zen.glance.enabled', true); pref('zen.glance.hold-duration', 300); // in ms diff --git a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch index 472726e1e..b21bedfd1 100644 --- a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch +++ b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs -index 91088fab1759b9af908912648d28daa5938a29c9..999c1950e25560164463ac57773ca7fedac6255f 100644 +index 91088fab1759b9af908912648d28daa5938a29c9..3f52ee8cd77ac171fd2cbf355ade1371e57d0db5 100644 --- a/browser/components/customizableui/CustomizableUI.sys.mjs +++ b/browser/components/customizableui/CustomizableUI.sys.mjs @@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, { @@ -114,9 +114,9 @@ index 91088fab1759b9af908912648d28daa5938a29c9..999c1950e25560164463ac57773ca7fe * The identifier string of the area that aNode is being inserted into. */ insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) { -+ if (aArea === CustomizableUI.AREA_NAVBAR && aNode.ownerGlobal.gZenVerticalTabsManager._hasSetSingleToolbar) { ++ if (aAreaId === CustomizableUI.AREA_NAVBAR && aNode.ownerGlobal.gZenVerticalTabsManager._hasSetSingleToolbar) { + aContainer = aNode.ownerDocument.getElementById("zen-sidebar-top-buttons-customization-target"); -+ aArea = "zen-sidebar-top-buttons"; ++ aAreaId = "zen-sidebar-top-buttons"; + } this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => { this.setLocationAttributes(aNode, aAreaId); diff --git a/src/browser/components/tabbrowser/content/tabbrowser-js.patch b/src/browser/components/tabbrowser/content/tabbrowser-js.patch index 78a5ee1f1..77ee31337 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 bfba253af3253a8cf547a5d69a1695651fc5c203..fca9c6c918f7d2353edd4f675dd19ca4c4208a50 100644 +index bfba253af3253a8cf547a5d69a1695651fc5c203..1ba8b8c51f27d92222f1e682681cf9c9f61ca14c 100644 --- a/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js @@ -415,11 +415,67 @@ @@ -638,8 +638,8 @@ index bfba253af3253a8cf547a5d69a1695651fc5c203..fca9c6c918f7d2353edd4f675dd19ca4 } } - -+ if (tab.group?.hasAttribute("split-view-group")) { -+ tab = tab.group; ++ if (element.group?.hasAttribute("split-view-group")) { ++ element = element.group; + } // Don't allow mixing pinned and unpinned tabs. if (element.pinned && !targetElement?.pinned) { @@ -652,7 +652,7 @@ index bfba253af3253a8cf547a5d69a1695651fc5c203..fca9c6c918f7d2353edd4f675dd19ca4 + targetElement = targetElement.group; + } let getContainer = () => { -+ if (tab.hasAttribute("zen-essential")) { ++ if (element.hasAttribute("zen-essential")) { + return document.getElementById("zen-essentials-container"); + } if (element.pinned && this.tabContainer.verticalMode) { diff --git a/src/browser/components/tabbrowser/content/tabs-js.patch b/src/browser/components/tabbrowser/content/tabs-js.patch index 542406423..94d7c924d 100644 --- a/src/browser/components/tabbrowser/content/tabs-js.patch +++ b/src/browser/components/tabbrowser/content/tabs-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js -index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc977c8415 100644 +index ef9c0389ec926e6bc01c0dc3b883beceaf1f7d43..5ba36f48da0d85cf9be1abcd8d5446e1a977b7b1 100644 --- a/browser/components/tabbrowser/content/tabs.js +++ b/browser/components/tabbrowser/content/tabs.js -@@ -93,7 +93,7 @@ +@@ -83,7 +83,7 @@ }; this.arrowScrollbox._canScrollToElement = element => { if (isTab(element)) { @@ -11,7 +11,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } return true; }; -@@ -347,7 +347,7 @@ +@@ -342,7 +342,7 @@ // and we're not hitting the scroll buttons. if ( event.button != 0 || @@ -20,7 +20,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc event.composedTarget.localName == "toolbarbutton" ) { return; -@@ -396,6 +396,7 @@ +@@ -391,6 +391,7 @@ // Reset the "ignored click" flag target._ignoredCloseButtonClicks = false; } @@ -28,8 +28,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } /* Protects from close-tab-button errant doubleclick: -@@ -693,7 +694,7 @@ - if (this.#isContainerVerticalPinnedExpanded(tab)) { +@@ -692,7 +693,7 @@ + if (this.#isContainerVerticalPinnedGrid(tab)) { // In expanded vertical mode, the max number of pinned tabs per row is dynamic // Set this before adjusting dragged tab's position - let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount); @@ -37,7 +37,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let tabsPerRow = 0; let position = 0; for (let pinnedTab of pinnedTabs) { -@@ -899,6 +900,10 @@ +@@ -913,6 +914,10 @@ } let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0); @@ -47,8 +47,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc + } if ( (effects == "move" || effects == "copy") && - this == draggedTab.container && -@@ -1012,6 +1017,18 @@ + document == draggedTab.ownerDocument && +@@ -1069,6 +1074,18 @@ this._tabDropIndicator.hidden = true; event.stopPropagation(); @@ -60,14 +60,14 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc + let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs); + + if (moved) { -+ this._finishMoveTogetherSelectedTabs(draggedTab); ++ this.finishMoveTogetherSelectedTabs(draggedTab); + return; + } + } if (draggedTab && dropEffect == "copy") { - // copy the dropped tab (wherever it's from) - let newIndex = this._getDropIndex(event); -@@ -1050,10 +1067,11 @@ + let duplicatedDraggedTab; + let duplicatedTabs = []; +@@ -1108,10 +1125,11 @@ } } else { let isPinned = draggedTab.pinned; @@ -83,8 +83,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc ); let size = this.verticalMode ? "height" : "width"; let screenAxis = this.verticalMode ? "screenY" : "screenX"; -@@ -1129,7 +1147,7 @@ - tab.removeAttribute("tabdrop-samewindow"); +@@ -1203,7 +1221,7 @@ + item.removeAttribute("tabdrop-samewindow"); resolve(); }; - if (gReduceMotion) { @@ -92,22 +92,18 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc postTransitionCleanup(); } else { let onTransitionEnd = transitionendEvent => { -@@ -1246,7 +1264,7 @@ - return; - } - } -- +@@ -1327,6 +1345,7 @@ + + let nextItem = this.ariaFocusableItems[newIndex]; + let tabGroup = isTab(nextItem) && nextItem.group; + if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return; gBrowser.loadTabs(urls, { inBackground, replace, -@@ -1276,13 +1294,25 @@ +@@ -1357,6 +1376,16 @@ return; } -- this._finishMoveTogetherSelectedTabs(draggedTab); - this._finishAnimateTabMove(); - + if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) { + const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab); + if (moved) { @@ -118,18 +114,10 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc + if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false; + } + -+ this._finishMoveTogetherSelectedTabs(draggedTab); -+ - if ( - dt.mozUserCancelled || - dt.dropEffect != "none" || -- this._isCustomizing -+ this._isCustomizing || -+ draggedTab.pinned - ) { - delete draggedTab._dragData; - return; -@@ -1504,7 +1534,7 @@ + this.finishMoveTogetherSelectedTabs(draggedTab); + this.finishAnimateTabMove(); + this.#expandGroupOnDrop(draggedTab); +@@ -1582,7 +1611,7 @@ } get newTabButton() { @@ -138,7 +126,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } get verticalMode() { -@@ -1524,29 +1554,41 @@ +@@ -1606,29 +1635,41 @@ if (this.#allTabs) { return this.#allTabs; } @@ -188,7 +176,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } /** -@@ -1566,7 +1608,7 @@ +@@ -1648,7 +1689,7 @@ */ get visibleTabs() { if (!this.#visibleTabs) { @@ -197,7 +185,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } return this.#visibleTabs; } -@@ -1601,23 +1643,18 @@ +@@ -1683,23 +1724,18 @@ } let elementIndex = 0; @@ -225,7 +213,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let visibleTabsInGroup = child.tabs.filter(tab => tab.visible); visibleTabsInGroup.forEach(tab => { tab.elementIndex = elementIndex++; -@@ -1627,10 +1664,7 @@ +@@ -1709,10 +1745,7 @@ } } @@ -237,7 +225,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc return this.#focusableItems; } -@@ -1638,6 +1672,7 @@ +@@ -1720,6 +1753,7 @@ _invalidateCachedTabs() { this.#allTabs = null; this._invalidateCachedVisibleTabs(); @@ -245,18 +233,18 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } _invalidateCachedVisibleTabs() { -@@ -1652,8 +1687,8 @@ - #isContainerVerticalPinnedExpanded(tab) { +@@ -1734,8 +1768,8 @@ + #isContainerVerticalPinnedGrid(tab) { return ( this.verticalMode && - tab.hasAttribute("pinned") && -- this.hasAttribute("expanded") +- this.hasAttribute("expanded") && + (tab.hasAttribute("zen-essential")) && -+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) ++ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) && + !this.expandOnHover ); } - -@@ -1668,7 +1703,7 @@ +@@ -1751,7 +1785,7 @@ if (node == null) { // We have a container for non-tab elements at the end of the scrollbox. @@ -265,7 +253,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } node.before(tab); -@@ -1763,7 +1798,7 @@ +@@ -1846,7 +1880,7 @@ // There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and // for when the tab strip is overflowed (which is shared by vertical and horizontal tabs); // Attach the long click popup to all of them. @@ -274,7 +262,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc const newTab2 = this.newTabButton; const newTabVertical = document.getElementById( "vertical-tabs-newtab-button" -@@ -1846,7 +1881,7 @@ +@@ -1929,7 +1963,7 @@ let rect = ele => { return window.windowUtils.getBoundsWithoutFlushing(ele); }; @@ -283,7 +271,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc if (tab && rect(tab).width <= this._tabClipWidth) { this.setAttribute("closebuttons", "activetab"); } else { -@@ -1858,10 +1893,12 @@ +@@ -1941,10 +1975,12 @@ _handleTabSelect(aInstant) { let selectedTab = this.selectedItem; @@ -296,34 +284,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc selectedTab._notselectedsinceload = false; } -@@ -1873,7 +1910,7 @@ - return; - } - -- let tabs = this.visibleTabs; -+ let tabs = this.visibleTabs.filter(tab => !tab.hasAttribute("zen-glance-tab")); - if (!tabs.length) { - return; - } -@@ -1909,7 +1946,7 @@ - if (isEndTab && !this._hasTabTempMaxWidth) { - return; - } -- let numPinned = gBrowser.pinnedTabCount; -+ let numPinned = gBrowser._numVisiblePinTabs; - // Force tabs to stay the same width, unless we're closing the last tab, - // which case we need to let them expand just enough so that the overall - // tabbar width is the same. -@@ -1924,7 +1961,7 @@ - let tabsToReset = []; - for (let i = numPinned; i < tabs.length; i++) { - let tab = tabs[i]; -- tab.style.setProperty("max-width", aTabWidth, "important"); -+ //tab.style.setProperty("max-width", aTabWidth, "important"); - if (!isEndTab) { - // keep tabs the same width - tab.style.transition = "none"; -@@ -1990,16 +2027,15 @@ +@@ -2085,16 +2121,15 @@ // Move pinned tabs to another container when the tabstrip is toggled to vertical // and when session restore code calls _positionPinnedTabs; update styling whenever // the number of pinned tabs changes. @@ -346,7 +307,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } } -@@ -2007,9 +2043,7 @@ +@@ -2102,9 +2137,7 @@ } _resetVerticalPinnedTabs() { @@ -357,7 +318,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc if (!verticalTabsContainer.children.length) { return; -@@ -2022,8 +2056,8 @@ +@@ -2117,8 +2150,8 @@ } _positionPinnedTabs() { @@ -368,7 +329,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let absPositionHorizontalTabs = this.overflowing && tabs.length > numPinned && numPinned > 0; -@@ -2032,7 +2066,7 @@ +@@ -2127,7 +2160,7 @@ if (this.verticalMode) { this._updateVerticalPinnedTabs(); @@ -377,7 +338,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let layoutData = this._pinnedTabsLayoutCache; let uiDensity = document.documentElement.getAttribute("uidensity"); if (!layoutData || layoutData.uiDensity != uiDensity) { -@@ -2104,7 +2138,7 @@ +@@ -2191,7 +2224,7 @@ return; } @@ -386,7 +347,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let directionX = screenX > dragData.animLastScreenX; let directionY = screenY > dragData.animLastScreenY; -@@ -2112,7 +2146,7 @@ +@@ -2199,7 +2232,7 @@ dragData.animLastScreenX = screenX; let { width: tabWidth, height: tabHeight } = @@ -395,7 +356,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let shiftSizeX = tabWidth * movingTabs.length; let shiftSizeY = tabHeight; dragData.tabWidth = tabWidth; -@@ -2296,11 +2330,15 @@ +@@ -2375,11 +2408,15 @@ this.#clearDragOverCreateGroupTimer(); let isPinned = draggedTab.pinned; @@ -415,7 +376,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc if (this.#rtlMode) { tabs.reverse(); -@@ -2314,7 +2352,7 @@ +@@ -2393,7 +2430,7 @@ let size = this.verticalMode ? "height" : "width"; let translateAxis = this.verticalMode ? "translateY" : "translateX"; let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft"; @@ -424,7 +385,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let translateX = event.screenX - dragData.screenX; let translateY = event.screenY - dragData.screenY; -@@ -2328,6 +2366,12 @@ +@@ -2407,6 +2444,12 @@ let lastTab = tabs.at(-1); let lastMovingTab = movingTabs.at(-1); let firstMovingTab = movingTabs[0]; @@ -437,20 +398,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let endEdge = ele => ele[screenAxis] + bounds(ele)[size]; let lastMovingTabScreen = endEdge(lastMovingTab); let firstMovingTabScreen = firstMovingTab[screenAxis]; -@@ -2348,7 +2392,11 @@ - translate = Math.min(Math.max(translate, firstBound), lastBound); - - for (let tab of movingTabs) { -- tab.style.transform = `${translateAxis}(${translate}px)`; -+ if (tab.group?.hasAttribute("split-view-group")) { -+ tab.group.style.transform = `${translateAxis}(${translate}px)`; -+ } else { -+ tab.style.transform = `${translateAxis}(${translate}px)`; -+ } - } - - dragData.translatePos = translate; -@@ -2485,6 +2533,9 @@ +@@ -2568,6 +2611,9 @@ break; } let element = tabs[mid]; @@ -460,7 +408,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let elementForSize = isTabGroupLabel(element) ? element.parentElement : element; -@@ -2507,6 +2558,10 @@ +@@ -2590,6 +2636,10 @@ if (!dropElement) { dropElement = this.ariaFocusableItems[oldDropElementIndex]; } @@ -471,7 +419,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc let newDropElementIndex = dropElement ? dropElement.elementIndex : oldDropElementIndex; -@@ -2515,7 +2570,7 @@ +@@ -2598,7 +2648,7 @@ let shouldCreateGroupOnDrop; let dropBefore; if (dropElement) { @@ -480,11 +428,11 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc ? dropElement.parentElement : dropElement; -@@ -2566,12 +2621,12 @@ +@@ -2660,12 +2710,12 @@ } } -- if (gBrowser._tabGroupsEnabled && !isPinned) { +- if (gBrowser._tabGroupsEnabled && isTab(draggedTab) && !isPinned) { + if (true) { let dragOverGroupingThreshold = 1 - moveOverThreshold; @@ -495,7 +443,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc dropElement != draggedTab && isTab(dropElement) && !dropElement?.group && -@@ -2639,7 +2694,7 @@ +@@ -2735,7 +2785,7 @@ // Shift background tabs to leave a gap where the dragged tab // would currently be dropped. for (let item of tabs) { @@ -504,7 +452,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc continue; } -@@ -2648,6 +2703,9 @@ +@@ -2744,6 +2794,9 @@ if (isTabGroupLabel(item)) { // Shift the `.tab-group-label-container` to shift the label element. item = item.parentElement; @@ -514,19 +462,19 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc } item.style.transform = transform; } -@@ -2697,8 +2755,9 @@ +@@ -2796,8 +2849,9 @@ ); } -- _finishAnimateTabMove() { -- if (!this.hasAttribute("movingtab")) { -+ _finishAnimateTabMove(always = false) { +- finishAnimateTabMove() { +- if (!this.#isMovingTab()) { ++ finishAnimateTabMove(always = false) { + gZenPinnedTabManager.removeTabContainersDragoverClass(); -+ if (!this.hasAttribute("movingtab") && !always) { ++ if (!this.#isMovingTab() && !always) { return; } -@@ -2711,6 +2770,12 @@ +@@ -2809,6 +2863,12 @@ item = item.parentElement; } item.style.transform = ""; @@ -539,7 +487,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc item.removeAttribute("dragover-createGroup"); } this.removeAttribute("movingtab-createGroup"); -@@ -2754,7 +2819,7 @@ +@@ -2855,7 +2915,7 @@ let postTransitionCleanup = () => { movingTab._moveTogetherSelectedTabsData.animate = false; }; @@ -548,7 +496,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc postTransitionCleanup(); } else { let onTransitionEnd = transitionendEvent => { -@@ -2924,7 +2989,7 @@ +@@ -3028,7 +3088,7 @@ } _notifyBackgroundTab(aTab) { diff --git a/src/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection-jsx.patch b/src/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection-jsx.patch deleted file mode 100644 index f92d7c824..000000000 --- a/src/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection-jsx.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx b/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx -index dcf192d0ab7323d69f1bf505971e57c98ad4397d..a4d88304786af35030391f71bc99eee6cf7c1a64 100644 ---- a/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx -+++ b/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx -@@ -188,7 +188,7 @@ export class ContentSection extends React.PureComponent { - data-l10n-args='{"num": 4}' - /> - -- {mayHaveSponsoredTopSites && ( -+ {false && ( -
- #tabbrowser-arrowscrollbox > &[pinned] { @@ -20,16 +20,16 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 + } - #tabbrowser-tabs[movingtab] &:is([selected], [multiselected]) { -@@ -254,7 +253,6 @@ + #tabbrowser-tabs[movingtab] &:is(:active, [multiselected]) { +@@ -257,7 +256,6 @@ } - :root:not([uidensity=compact]) &[pinned] { + :root:not([uidensity=compact], [sidebar-expand-on-hover]) &[pinned] { - padding: 0 10px; } &:is([selected], [multiselected]) { -@@ -268,6 +266,7 @@ +@@ -271,6 +269,7 @@ border-radius: inherit; position: relative; overflow: hidden; @@ -37,7 +37,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 &::before { position: absolute; -@@ -442,6 +441,7 @@ +@@ -458,6 +457,7 @@ .tab-icon-image { -moz-context-properties: fill, stroke; fill: currentColor; @@ -45,7 +45,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 /* Apply crisp rendering for favicons at exactly 2dppx resolution */ @media (resolution: 2dppx) { -@@ -523,7 +523,7 @@ +@@ -557,7 +557,7 @@ z-index: 1; /* Overlay tab title */ #tabbrowser-tabs[orient=vertical] & { @@ -54,7 +54,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 } &[crashed] { -@@ -531,7 +531,7 @@ +@@ -565,7 +565,7 @@ } #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]), @@ -63,7 +63,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 &[soundplaying] { list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); } -@@ -561,7 +561,7 @@ +@@ -595,7 +595,7 @@ background-image: linear-gradient(var(--audio-overlay-extra-background)), linear-gradient(var(--toolbox-bgcolor)); -moz-context-properties: fill; @@ -72,44 +72,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 color-scheme: var(--tab-selected-color-scheme); border-radius: var(--border-radius-circle); -@@ -593,7 +593,7 @@ - } - - #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:is([soundplaying], [muted], [activemedia-blocked]), -- &[pinned]:is([soundplaying], [muted], [activemedia-blocked]), -+ &:is([soundplaying], [muted], [activemedia-blocked]), - &[crashed] { - display: revert; - } -@@ -607,7 +607,7 @@ - --button-min-height-small: 24px; - --button-border-radius: var(--border-radius-small); - -- #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) { -+ #tabbrowser-tabs:is([orient="horizontal"]) &:not([pinned]):not([crashed]) { - &:is([soundplaying], [muted], [activemedia-blocked]) { - display: block; - } -@@ -638,14 +638,14 @@ - } - - &[textoverflow] { -- &[labeldirection=ltr]:not([pinned]), -- &:not([labeldirection], [pinned]):-moz-locale-dir(ltr) { -+ &[labeldirection=ltr], -+ &:not([labeldirection]):-moz-locale-dir(ltr) { - direction: ltr; - mask-image: linear-gradient(to left, transparent, black var(--tab-label-mask-size)); - } - -- &[labeldirection=rtl]:not([pinned]), -- &:not([labeldirection], [pinned]):-moz-locale-dir(rtl) { -+ &[labeldirection=rtl], -+ &:not([labeldirection]):-moz-locale-dir(rtl) { - direction: rtl; - mask-image: linear-gradient(to right, transparent, black var(--tab-label-mask-size)); - } -@@ -1201,7 +1201,7 @@ +@@ -1362,7 +1362,7 @@ tab-group { } } @@ -118,7 +81,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 #vertical-tabs-newtab-button { appearance: none; min-height: var(--tab-min-height); -@@ -1212,7 +1212,7 @@ +@@ -1373,7 +1373,7 @@ tab-group { margin-inline: var(--tab-inner-inline-margin); #tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text { @@ -127,7 +90,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 } &:hover { -@@ -1236,7 +1236,7 @@ +@@ -1397,7 +1397,7 @@ tab-group { * flex container. #tabs-newtab-button is a child of the arrowscrollbox where * we don't want a gap (between tabs), so we have to add some margin. */ @@ -136,15 +99,16 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 margin-block: var(--tab-block-margin); } -@@ -1260,7 +1260,6 @@ - } +@@ -1471,8 +1471,6 @@ tab-group { + } - #vertical-pinned-tabs-container { -- --tab-inline-padding: calc((calc(var(--tab-collapsed-background-width) + 2 * var(--tab-pinned-margin-inline-expanded) - var(--icon-size-default)) / 2)); - display: none; - grid-template-columns: repeat(auto-fit, minmax(var(--tab-pinned-min-width-expanded), auto)); - overflow-y: auto; -@@ -1480,7 +1479,7 @@ + :root:not([sidebar-expand-on-hover]) & { +- --tab-inline-padding: calc((var(--tab-collapsed-background-width) + 2 * +- var(--tab-pinned-margin-inline-expanded) - var(--icon-size-default)) / 2); + /* stylelint-disable-next-line media-query-no-invalid */ + @media not -moz-pref("sidebar.visibility", "expand-on-hover") { + /* We need these rules to apply at all times when the sidebar.visibility +@@ -1717,7 +1715,7 @@ tab-group { toolbarbutton:not(#firefox-view-button), toolbarpaletteitem:not(#wrapper-firefox-view-button) ) ~ #tabbrowser-tabs { @@ -153,7 +117,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52 padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px); margin-inline-start: 2px; } -@@ -1514,7 +1513,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { +@@ -1751,7 +1749,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { list-style-image: url(chrome://global/skin/icons/plus.svg); } diff --git a/src/browser/themes/windows/browser-css.patch b/src/browser/themes/windows/browser-css.patch index f7251386e..e75b753be 100644 --- a/src/browser/themes/windows/browser-css.patch +++ b/src/browser/themes/windows/browser-css.patch @@ -1,20 +1,13 @@ diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css -index 9af78803f0005a2b89e1c73f52153ed4d9e3154a..b63dc3d050144f048ac6a326acd57cc85fa8a3a7 100644 +index 3e75a5f366e76acf4b9457a510b58b0cb8af580f..4962151f34ff52e8d009b82a9a12da99c4745a7a 100644 --- a/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css -@@ -40,14 +40,13 @@ - * override these on the tabs toolbar because the accent color is - * arbitrary, so the hardcoded colors from browser-custom-colors might - * not provide sufficient contrast. */ -- --toolbarbutton-icon-fill: currentColor; - --toolbarbutton-hover-background: color-mix(in srgb, currentColor 17%, transparent); - --toolbarbutton-active-background: color-mix(in srgb, currentColor 30%, transparent); +@@ -57,7 +57,7 @@ } } - &[sizemode="normal"] #navigator-toolbox { -- border-top: .5px solid ActiveBorder; -+ /* border-top: .5px solid ActiveBorder; Zen: Remove annoying top border, dont remove */ +- &[sizemode="normal"] #navigator-toolbox { ++ &[sizemode="normal"] #browser { + border-top: .5px solid ActiveBorder; &:-moz-window-inactive { border-top-color: InactiveBorder; - } diff --git a/src/modules/libpref/init/zen-static-prefs.inc b/src/modules/libpref/init/zen-static-prefs.inc index b53d20ae2..2761dbb22 100644 --- a/src/modules/libpref/init/zen-static-prefs.inc +++ b/src/modules/libpref/init/zen-static-prefs.inc @@ -11,10 +11,3 @@ value: 1 mirror: always #endif - -#ifdef XP_WIN -- name: zen.widget.windows.acrylic - type: bool - value: true - mirror: always -#endif diff --git a/src/toolkit/content/aboutSupport-xhtml.patch b/src/toolkit/content/aboutSupport-xhtml.patch index 61b7b7b0b..b2bd09de8 100644 --- a/src/toolkit/content/aboutSupport-xhtml.patch +++ b/src/toolkit/content/aboutSupport-xhtml.patch @@ -1,12 +1,12 @@ diff --git a/toolkit/content/aboutSupport.xhtml b/toolkit/content/aboutSupport.xhtml -index 05e3d72a6e67900e9b3d9bfd35c89b056c7ca747..55408e77830492765c976dd967ca14a7b74cba97 100644 +index 296259cd0360a403e8659e22d0c08e968529a38a..bde1ee8d0a05e6ce2eb3ff8ff8a19ba28c20af98 100644 --- a/toolkit/content/aboutSupport.xhtml +++ b/toolkit/content/aboutSupport.xhtml -@@ -31,6 +31,7 @@ - #ifndef ANDROID - - #endif -+ - +@@ -10,6 +10,7 @@ - + + ++ + + + diff --git a/src/toolkit/mozapps/extensions/internal/XPIProvider-sys-mjs.patch b/src/toolkit/mozapps/extensions/internal/XPIProvider-sys-mjs.patch index 8bb6cf4ce..f916df9de 100644 --- a/src/toolkit/mozapps/extensions/internal/XPIProvider-sys-mjs.patch +++ b/src/toolkit/mozapps/extensions/internal/XPIProvider-sys-mjs.patch @@ -1,15 +1,15 @@ diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs b/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs -index 3af9a7779dd43a6ded906ceaf6768c56d53c8605..c0b597fa3f8073b9bfb4118d5352246a5b54c2d7 100644 +index 2cafde2156680a557081c5b82923f14618749358..0f4f5160f649165df80f35fbe72e02786a5b867e 100644 --- a/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs +++ b/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs -@@ -2556,8 +2556,8 @@ export var XPIProvider = { +@@ -2674,8 +2674,8 @@ export var XPIProvider = { + if (AppConstants.platform != "android") { + // Keep version in sync with toolkit/mozapps/extensions/default-theme/manifest.json + this.maybeInstallBuiltinAddon( +- "default-theme@mozilla.org", +- "1.4.1", ++ "firefox-compact-dark@mozilla.org", ++ "1.3", + "resource://default-theme/" + ); } - // Keep version in sync with toolkit/mozapps/extensions/default-theme/manifest.json - this.maybeInstallBuiltinAddon( -- "default-theme@mozilla.org", -- "1.4.1", -+ "firefox-compact-dark@mozilla.org", -+ "1.3", - "resource://default-theme/" - ); - diff --git a/src/toolkit/themes/shared/popup-css.patch b/src/toolkit/themes/shared/popup-css.patch index f5e674f12..b5db33881 100644 --- a/src/toolkit/themes/shared/popup-css.patch +++ b/src/toolkit/themes/shared/popup-css.patch @@ -1,32 +1,15 @@ diff --git a/toolkit/themes/shared/popup.css b/toolkit/themes/shared/popup.css -index ed0caa97db5726a7d1bc1cd0aa7af3fdf99690dc..ce49d7f6900a1184c9aed00c26bd7b42916482aa 100644 +index 5701d305fdfc0407ead51aa52eefee38e7429de8..642325e981e9597eaaefefa725852a49b49ee6dc 100644 --- a/toolkit/themes/shared/popup.css +++ b/toolkit/themes/shared/popup.css -@@ -21,8 +21,8 @@ panel { +@@ -22,8 +22,8 @@ panel { --panel-border-color: ThreeDShadow; --panel-width: initial; -- --panel-shadow-margin: 0px; +- --panel-shadow-margin: 4px; - --panel-shadow: 0 0 var(--panel-shadow-margin) hsla(0,0%,0%,.2); + --panel-shadow-margin: 10px; + --panel-shadow: var(--zen-big-shadow); -moz-window-input-region-margin: var(--panel-shadow-margin); margin: calc(-1 * var(--panel-shadow-margin)); -@@ -30,8 +30,6 @@ panel { - --background-color-canvas: var(--panel-background); - - @media (-moz-platform: linux) { -- --panel-border-radius: 8px; -- --panel-padding-block: 3px; - - @media (prefers-contrast) { - --panel-border-color: color-mix(in srgb, currentColor 60%, transparent); -@@ -208,7 +206,6 @@ panel:where([type="arrow"]) { - } - - &[animating] { -- pointer-events: none; - } - } - } diff --git a/src/widget/windows/WinUtils-cpp.patch b/src/widget/windows/WinUtils-cpp.patch deleted file mode 100644 index 2d3854274..000000000 --- a/src/widget/windows/WinUtils-cpp.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/widget/windows/WinUtils.cpp b/widget/windows/WinUtils.cpp -index 598c96cbb5cd06a986a5793ebe9c5438d419d4a9..de1317749e6a6dd7df644818970d7706a51e6c14 100644 ---- a/widget/windows/WinUtils.cpp -+++ b/widget/windows/WinUtils.cpp -@@ -2007,6 +2007,7 @@ bool WinUtils::GetTimezoneName(wchar_t* aBuffer) { - static constexpr nsLiteralCString kMicaPrefs[] = { - "widget.windows.mica"_ns, - "widget.windows.mica.popups"_ns, -+ "zen.widget.windows.acrylic"_ns, - }; - - static BOOL CALLBACK UpdateMicaInHwnd(HWND aHwnd, LPARAM aLParam) { diff --git a/src/widget/windows/nsWindow-cpp.patch b/src/widget/windows/nsWindow-cpp.patch deleted file mode 100644 index 0de755b0a..000000000 --- a/src/widget/windows/nsWindow-cpp.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp -index d2863d5fd9ce5cedc88253a07cb061a660d42e61..5c1097ad16cd6e27e76cc6dfbed85218d36cc36f 100644 ---- a/widget/windows/nsWindow.cpp -+++ b/widget/windows/nsWindow.cpp -@@ -165,6 +165,7 @@ - #include "mozilla/StaticPrefs_layout.h" - #include "mozilla/StaticPrefs_ui.h" - #include "mozilla/StaticPrefs_widget.h" -+#include "mozilla/StaticPrefs_zen.h" - #include "nsNativeAppSupportWin.h" - - #include "nsIGfxInfo.h" -@@ -2546,7 +2547,7 @@ void nsWindow::UpdateMicaBackdrop(bool aForce) { - if (!useBackdrop) { - return DWMSBT_AUTO; - } -- return IsPopup() ? DWMSBT_TRANSIENTWINDOW : DWMSBT_TABBEDWINDOW; -+ return IsPopup() ? DWMSBT_TRANSIENTWINDOW : (StaticPrefs::zen_widget_windows_acrylic() ? DWMSBT_TRANSIENTWINDOW : DWMSBT_TABBEDWINDOW); - }(); - ::DwmSetWindowAttribute(mWnd, DWMWA_SYSTEMBACKDROP_TYPE, &backdrop, - sizeof backdrop); diff --git a/src/zen/common/ZenUIMigration.mjs b/src/zen/common/ZenUIMigration.mjs index 90e1eea5b..6490344d7 100644 --- a/src/zen/common/ZenUIMigration.mjs +++ b/src/zen/common/ZenUIMigration.mjs @@ -6,7 +6,7 @@ ChromeUtils.defineESModuleGetters(lazy, { class ZenUIMigration { PREF_NAME = 'zen.migration.version'; - MIGRATION_VERSION = 1; + MIGRATION_VERSION = 2; init(isNewProfile, win) { if (!isNewProfile) { @@ -27,13 +27,16 @@ class ZenUIMigration { if (this._migrationVersion < 1) { this._migrateV1(win); } + if (this._migrationVersion < 2) { + this._migrateV2(win); + } } clearVariables() { this._migrationVersion = this.MIGRATION_VERSION; } - async _migrateV1(win) { + _migrateV1(win) { // Introduction of the new URL bar, show a message to the user const notification = win.gNotificationBox.appendNotification( 'zen-new-urlbar-notification', @@ -57,6 +60,13 @@ class ZenUIMigration { ] ); } + + _migrateV2(win) { + if (Services.prefs.getBoolPref('zen.widget.windows.acrylic', false)) { + Services.prefs.setIntPref('widget.windows.mica.toplevel-backdrop', 2); + Services.prefs.clearUserPref('zen.widget.windows.acrylic'); + } + } } export var gZenUIMigration = new ZenUIMigration(); diff --git a/src/zen/common/styles/zen-theme.css b/src/zen/common/styles/zen-theme.css index b16cfcf3e..f85cb0078 100644 --- a/src/zen/common/styles/zen-theme.css +++ b/src/zen/common/styles/zen-theme.css @@ -163,7 +163,7 @@ @media (-moz-windows-mica) or (-moz-platform: macos) { background: transparent; --zen-themed-toolbar-bg-transparent: transparent; - @media -moz-pref('zen.widget.windows.acrylic') { + @media -moz-pref("widget.windows.mica.toplevel-backdrop", 2) { --zen-themed-toolbar-bg-transparent: color-mix(in srgb, var(--zen-themed-toolbar-bg) 35%, transparent 65%); } } diff --git a/src/zen/split-view/ZenViewSplitter.mjs b/src/zen/split-view/ZenViewSplitter.mjs index efb90d7c2..25c2e3320 100644 --- a/src/zen/split-view/ZenViewSplitter.mjs +++ b/src/zen/split-view/ZenViewSplitter.mjs @@ -187,7 +187,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature { if (!draggedTab || gBrowser.selectedTab.hasAttribute('zen-empty-tab')) { return; } - draggedTab.container._finishMoveTogetherSelectedTabs(draggedTab); + draggedTab.container.finishMoveTogetherSelectedTabs(draggedTab); } if ( !draggedTab || 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 8a4280a06..b24a57a2f 100644 --- a/src/zen/tabs/zen-tabs/vertical-tabs-topbar.inc.css +++ b/src/zen/tabs/zen-tabs/vertical-tabs-topbar.inc.css @@ -16,7 +16,7 @@ z-index: 1; &:not([zen-has-hover='true']):not([has-popup-menu]):not(:focus-within):not(:has(*:is([panelopen='true'], [open='true']))) { transition-delay: 0.2s; - height: calc(var(--zen-element-separation) + 0.5px); + height: var(--zen-element-separation); overflow: hidden; opacity: 0; & > * {