diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c3410366a..bf05d6432 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -515,31 +515,33 @@ jobs: # If we are on Twilight, we want to just update the Twilight tag's release - name: Update Twilight tag if: ${{ inputs.update_branch == 'twilight' }} - uses: marvinpinto/action-automatic-releases@master + uses: softprops/action-gh-release@v2 with: files: | - zen.source.tar.zst - zen.linux-x86_64.tar.xz - zen.linux-aarch64.tar.xz - zen-x86_64.AppImage - zen-x86_64.AppImage.zsync - zen-aarch64.AppImage - zen-aarch64.AppImage.zsync - zen.win-x86_64.zip - zen.win-arm64.zip - linux.mar - linux-aarch64.mar - windows.mar - windows-arm64.mar - macos.mar - zen.installer.exe - zen.installer-arm64.exe - zen.macos-universal.dmg - automatic_release_tag: 'twilight' - title: 'Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})' + ./zen.source.tar.zst + ./zen.linux-x86_64.tar.xz + ./zen.linux-aarch64.tar.xz + ./zen-x86_64.AppImage + ./zen-x86_64.AppImage.zsync + ./zen-aarch64.AppImage + ./zen-aarch64.AppImage.zsync + ./zen.win-x86_64.zip + ./zen.win-arm64.zip + ./linux.mar + ./linux-aarch64.mar + ./windows.mar + ./windows-arm64.mar + ./macos.mar + ./zen.installer.exe + ./zen.installer-arm64.exe + ./zen.macos-universal.dmg + tag_name: 'twilight' + name: 'Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})' draft: false + generate_release_notes: false prerelease: true - repo_token: ${{ secrets.DEPLOY_KEY }} + token: ${{ secrets.DEPLOY_KEY }} + fail_on_unmatched_files: false env: GITHUB_REPOSITORY: ${{ github.repository }} @@ -547,28 +549,30 @@ jobs: uses: marvinpinto/action-automatic-releases@master if: ${{ inputs.update_branch == 'release' }} with: - repo_token: '${{ secrets.DEPLOY_KEY }}' - automatic_release_tag: ${{ needs.build-data.outputs.version }} + token: '${{ secrets.DEPLOY_KEY }}' + tag_name: ${{ needs.build-data.outputs.version }} prerelease: false - title: 'Release build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})' + fail_on_unmatched_files: false + generate_release_notes: false + name: 'Release build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})' files: | - zen.source.tar.zst - zen.linux-x86_64.tar.xz - zen.linux-aarch64.tar.xz - zen-x86_64.AppImage - zen-x86_64.AppImage.zsync - zen-aarch64.AppImage - zen-aarch64.AppImage.zsync - .github/workflows/object/windows-x64-signed-x86_64/zen.win-x86_64.zip - .github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip - linux.mar - linux-aarch64.mar - .github/workflows/object/windows-x64-signed-x86_64/windows.mar - .github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar - macos.mar - .github/workflows/object/windows-x64-signed-x86_64/zen.installer.exe - .github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe - zen.macos-universal.dmg + ./zen.source.tar.zst + ./zen.linux-x86_64.tar.xz + ./zen.linux-aarch64.tar.xz + ./zen-x86_64.AppImage + ./zen-x86_64.AppImage.zsync + ./zen-aarch64.AppImage + ./zen-aarch64.AppImage.zsync + ./.github/workflows/object/windows-x64-signed-x86_64/zen.win-x86_64.zip + ./.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip + ./linux.mar + ./linux-aarch64.mar + ./.github/workflows/object/windows-x64-signed-x86_64/windows.mar + ./.github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar + ./macos.mar + ./.github/workflows/object/windows-x64-signed-x86_64/zen.installer.exe + ./.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe + ./zen.macos-universal.dmg prepare-flatpak: if: ${{ inputs.create_release && inputs.update_branch == 'release' }} diff --git a/package-lock.json b/package-lock.json index 5391ea4b9..cfae67f55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@zen-browser/surfer": "^1.9.14" + "@zen-browser/surfer": "^1.9.16" }, "devDependencies": { "husky": "^9.1.7", @@ -270,9 +270,10 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, "node_modules/@zen-browser/surfer": { - "version": "1.9.15", - "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.9.15.tgz", - "integrity": "sha512-mG/nTFduaXpYmGNYh5+d5ZzRX6XOkF6VEgia1nSZUoiPAXbwKblmwKro/b6uYAELTvpMCEneRl86CIU8HK++Tg==", + "version": "1.9.16", + "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.9.16.tgz", + "integrity": "sha512-6/Vcp1Ox9mt53hoBUuxFvpnRMnlvjFb3GBOcRhpqoYW/yi9mlV3G48icE717wGCoR2TThfuS6SYVfiT/G1kkrw==", + "license": "MPL-2.0", "dependencies": { "@resvg/resvg-js": "^1.4.0", "async-icns": "^1.0.2", @@ -2810,9 +2811,9 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, "@zen-browser/surfer": { - "version": "1.9.15", - "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.9.15.tgz", - "integrity": "sha512-mG/nTFduaXpYmGNYh5+d5ZzRX6XOkF6VEgia1nSZUoiPAXbwKblmwKro/b6uYAELTvpMCEneRl86CIU8HK++Tg==", + "version": "1.9.16", + "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.9.16.tgz", + "integrity": "sha512-6/Vcp1Ox9mt53hoBUuxFvpnRMnlvjFb3GBOcRhpqoYW/yi9mlV3G48icE717wGCoR2TThfuS6SYVfiT/G1kkrw==", "requires": { "@resvg/resvg-js": "^1.4.0", "async-icns": "^1.0.2", diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index e0d21b352..fb124d615 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -143,6 +143,7 @@ pref('zen.view.sidebar-expanded.max-width', 500); #ifdef XP_MACOSX pref('zen.view.mac.show-three-dot-menu', false); +pref('zen.widget.mac.mono-window-controls', true); #endif pref('zen.view.show-bottom-border', false); pref('zen.view.use-single-toolbar', true); diff --git a/src/browser/base/content/ZenUIManager.mjs b/src/browser/base/content/ZenUIManager.mjs index f09b26044..8180d1772 100644 --- a/src/browser/base/content/ZenUIManager.mjs +++ b/src/browser/base/content/ZenUIManager.mjs @@ -14,6 +14,10 @@ var gZenUIManager = { return ChromeUtils.importESModule('chrome://browser/content/zen-vendor/motion.min.mjs', { global: 'current' }); }); + ChromeUtils.defineLazyGetter(this, '_toastContainer', () => { + return document.getElementById('zen-toast-container'); + }); + new ResizeObserver(this.updateTabsToolbar.bind(this)).observe(document.getElementById('TabsToolbar')); new ResizeObserver( @@ -209,6 +213,38 @@ var gZenUIManager = { } } }, + + // Section: Notification messages + _createToastElement(messageId, options) { + const element = document.createXULElement('vbox'); + const label = document.createXULElement('label'); + document.l10n.setAttributes(label, messageId, options); + element.appendChild(label); + if (options.descriptionId) { + const description = document.createXULElement('label'); + description.classList.add('description'); + document.l10n.setAttributes(description, options.descriptionId, options); + element.appendChild(description); + } + element.classList.add('zen-toast'); + return element; + }, + + async showToast(messageId, options = {}) { + const toast = this._createToastElement(messageId, options); + this._toastContainer.removeAttribute('hidden'); + this._toastContainer.appendChild(toast); + await this.motion.animate(toast, { opacity: [0, 1], scale: [0.8, 1] }, { type: 'spring', duration: 0.3 }); + await new Promise((resolve) => setTimeout(resolve, 3000)); + await this.motion.animate(toast, { opacity: [1, 0], scale: [1, 0.9] }, { duration: 0.2, bounce: 0 }); + const toastHeight = toast.getBoundingClientRect().height; + // 5 for the separation between toasts + await this.motion.animate(toast, { marginBottom: [0, `-${toastHeight + 5}px`] }, { duration: 0.2 }); + toast.remove(); + if (!this._toastContainer.hasChildNodes()) { + this._toastContainer.setAttribute('hidden', 'true'); + } + }, }; var gZenVerticalTabsManager = { @@ -635,11 +671,15 @@ var gZenVerticalTabsManager = { } // Maybe add some confetti here?!? - gZenUIManager.motion.animate(this._tabEdited, { - scale: [1, 0.98, 1], - }, { - duration: 0.25, - }); + gZenUIManager.motion.animate( + this._tabEdited, + { + scale: [1, 0.98, 1], + }, + { + duration: 0.25, + } + ); this._tabEdited.querySelector('.tab-editor-container').remove(); label.classList.remove('tab-label-container-editing'); diff --git a/src/browser/base/content/browser-xhtml.patch b/src/browser/base/content/browser-xhtml.patch index f55a99295..248781b38 100644 --- a/src/browser/base/content/browser-xhtml.patch +++ b/src/browser/base/content/browser-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml -index 891c067d6ad718061c410c04743bed25744504b5..560abfe817b94f535919ed29c21a912b09d63ac5 100644 +index 891c067d6ad718061c410c04743bed25744504b5..b7ded9691225068b23e4d6a5113242d0c0f5f842 100644 --- a/browser/base/content/browser.xhtml +++ b/browser/base/content/browser.xhtml @@ -99,6 +99,8 @@ @@ -19,7 +19,7 @@ index 891c067d6ad718061c410c04743bed25744504b5..560abfe817b94f535919ed29c21a912b # All sets except for popupsets (commands, keys, and stringbundles) -@@ -164,9 +167,12 @@ +@@ -164,9 +167,13 @@ @@ -27,6 +27,7 @@ index 891c067d6ad718061c410c04743bed25744504b5..560abfe817b94f535919ed29c21a912b - -#include browser-box.inc.xhtml + ++ + #include navigator-toolbox.inc.xhtml + + diff --git a/src/browser/base/content/zen-styles/zen-browser-ui.css b/src/browser/base/content/zen-styles/zen-browser-ui.css index 0257ac92f..d4ca2ea19 100644 --- a/src/browser/base/content/zen-styles/zen-browser-ui.css +++ b/src/browser/base/content/zen-styles/zen-browser-ui.css @@ -152,12 +152,33 @@ gap: var(--zen-element-separation); } -.titlebar-buttonbox-container { - height: 100%; +@media not (-moz-platform: macos) { + .titlebar-buttonbox-container { + height: 100%; + } } @media (-moz-platform: macos) { .titlebar-buttonbox-container { margin-inline-end: 8px; + padding: 3px 0; + + & > .titlebar-buttonbox { + margin-inline-start: var(--zen-toolbox-padding); + } + } + + @media (-moz-bool-pref: 'zen.widget.mac.mono-window-controls') { + .titlebar-buttonbox-container { + /* Draw 3 dots as background to represent the window controls, + all with the same cololr as the titlebar */ + background-image: radial-gradient(circle, #4d4c4a 6px, transparent 0.5px); + background-size: 20px 22px; + background-position: 52% 50%; + + &:not([zen-has-hover='true']) > .titlebar-buttonbox { + opacity: 0; + } + } } } diff --git a/src/browser/base/content/zen-styles/zen-popup.css b/src/browser/base/content/zen-styles/zen-popup.css index adc2fb884..e6f773936 100644 --- a/src/browser/base/content/zen-styles/zen-popup.css +++ b/src/browser/base/content/zen-styles/zen-popup.css @@ -349,3 +349,30 @@ menuitem { #editBMPanel_workspaceList input[type='checkbox'] { margin-right: 8px; } + +/* Section: Toast notifications */ + +#zen-toast-container { + position: fixed; + top: calc(var(--zen-element-separation) * 2); + right: calc(var(--zen-element-separation) * 2); + z-index: 1000; + gap: 1rem; + + & .zen-toast { + padding: 0.9rem 0.8rem; + border-radius: 12px; + background-color: var(--button-primary-bgcolor); + color: var(--button-primary-color); + box-shadow: var(--zen-big-shadow); + display: flex; + gap: 5px; + flex-direction: column; + gap: 2px; + width: fit-content; + + & .description { + opacity: 0.6; + } + } +} diff --git a/src/browser/base/content/zen-styles/zen-theme.css b/src/browser/base/content/zen-styles/zen-theme.css index 72955e154..9a36206bf 100644 --- a/src/browser/base/content/zen-styles/zen-theme.css +++ b/src/browser/base/content/zen-styles/zen-theme.css @@ -12,8 +12,8 @@ :root, .zenLooksAndFeelColorOption { /** We also add `.zenLooksAndFeelColorOption` so that it recalculates the colors when the theme changes - * in the preferences page. - */ + * in the preferences page. + */ /* Default values */ --zen-border-radius: 7px; @@ -46,21 +46,21 @@ --in-content-primary-button-background: color-mix( in srgb, - var(--zen-primary-color) 10%, - var(--zen-branding-bg) 90% + var(--zen-primary-color) 30%, + var(--zen-branding-bg-reverse) 70% ) !important; --in-content-primary-button-background-hover: color-mix( in srgb, - var(--zen-primary-color) 15%, - var(--zen-branding-bg) 85% + var(--zen-primary-color) 35%, + var(--zen-branding-bg-reverse) 65% ) !important; --in-content-primary-button-background-active: color-mix( in srgb, - var(--zen-primary-color) 20%, - var(--zen-branding-bg) 80% + var(--zen-primary-color) 40%, + var(--zen-branding-bg-reverse) 60% ) !important; - --button-text-color-primary: var(--zen-branding-bg-reverse) !important; - --in-content-primary-button-text-color: var(--zen-colors-primary-foreground) !important; + --button-text-color-primary: var(--zen-branding-bg) !important; + --in-content-primary-button-text-color: var(--zen-branding-bg) !important; --in-content-primary-button-border-color: transparent !important; --in-content-primary-button-border-hover: transparent !important; --in-content-primary-button-border-active: var(--zen-colors-border) !important; @@ -72,7 +72,7 @@ /* This is like the secondary button */ --in-content-button-background: transparent !important; --in-content-button-text-color: var(--zen-secondary-btn-color) !important; - --in-content-button-background-hover: color-mix(in srgb, var(--zen-primary-color) 5%, var(--zen-branding-bg) 60%) !important; + --in-content-button-background-hover: color-mix(in srgb, currentColor 3%, transparent 97%) !important; --button-bgcolor: var(--in-content-button-background) !important; --button-hover-bgcolor: var(--in-content-button-background-hover) !important; --button-hover-color: var(--in-content-button-text-color-hover) !important; @@ -88,7 +88,7 @@ --button-background-color: var(--in-content-button-background) !important; --button-background-color-hover: var(--in-content-button-background-hover) !important; - --button-background-color-active: var(--in-content-primary-button-background-active) !important; + --button-background-color-active: color-mix(in srgb, currentColor 5%, transparent 95%) !important; --color-accent-primary: var(--button-primary-bgcolor) !important; --color-accent-primary-hover: var(--button-primary-hover-bgcolor) !important; @@ -180,9 +180,9 @@ --zen-native-inner-radius: var( --zen-webview-border-radius, /* Inner radius calculation: - * 1. If the native radius - the separation is less than 4px, use 4px. - * 2. Otherwise, use the the calculated value (inner radius = outer radius - separation). - */ + * 1. If the native radius - the separation is less than 4px, use 4px. + * 2. Otherwise, use the the calculated value (inner radius = outer radius - separation). + */ max(5px, calc(var(--zen-native-content-radius) - var(--zen-element-separation) / 2)) ); diff --git a/src/browser/base/content/zen-styles/zen-workspaces.css b/src/browser/base/content/zen-styles/zen-workspaces.css index 288032e8b..34a6e6466 100644 --- a/src/browser/base/content/zen-styles/zen-workspaces.css +++ b/src/browser/base/content/zen-styles/zen-workspaces.css @@ -73,6 +73,10 @@ filter: grayscale(0); opacity: 1; } + + &:hover { + background-color: var(--zen-toolbar-element-bg); + } } } } diff --git a/src/browser/base/zen-components/ZenCommonUtils.mjs b/src/browser/base/zen-components/ZenCommonUtils.mjs index 701363e36..83a75a1c8 100644 --- a/src/browser/base/zen-components/ZenCommonUtils.mjs +++ b/src/browser/base/zen-components/ZenCommonUtils.mjs @@ -69,7 +69,7 @@ var gZenCommonActions = { transferable.addDataFlavor('text/plain'); transferable.setTransferData('text/plain', str); Services.clipboard.setData(transferable, null, Ci.nsIClipboard.kGlobalClipboard); - ConfirmationHint.show(document.getElementById('PanelUI-menu-button'), 'zen-copy-current-url-confirmation'); + gZenUIManager.showToast('zen-copy-current-url-confirmation'); } }, copyCurrentURLAsMarkdownToClipboard() { @@ -84,7 +84,7 @@ var gZenCommonActions = { transferable.addDataFlavor('text/plain'); transferable.setTransferData('text/plain', str); Services.clipboard.setData(transferable, null, Ci.nsIClipboard.kGlobalClipboard); - ConfirmationHint.show(document.getElementById('PanelUI-menu-button'), 'zen-copy-current-url-confirmation'); + gZenUIManager.showToast('zen-copy-current-url-confirmation'); } }, diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 56bf32ecb..7e0c35b97 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -292,6 +292,9 @@ var gZenCompactModeManager = { element: document.getElementById('zen-appcontent-navbar-container'), screenEdge: 'top', }, + { + element: gZenVerticalTabsManager.actualWindowButtons, + }, ]; }, @@ -336,10 +339,20 @@ var gZenCompactModeManager = { target.addEventListener('mouseleave', (event) => { // If on Mac, ignore mouseleave in the area of window buttons if (AppConstants.platform == 'macosx') { - const MAC_WINDOW_BUTTONS_X_BORDER = 75; - const MAC_WINDOW_BUTTONS_Y_BORDER = 40; + const buttonRect = gZenVerticalTabsManager.actualWindowButtons.getBoundingClientRect(); + const MAC_WINDOW_BUTTONS_X_BORDER = buttonRect.width + buttonRect.x; + const MAC_WINDOW_BUTTONS_Y_BORDER = buttonRect.height + buttonRect.y; if (event.clientX < MAC_WINDOW_BUTTONS_X_BORDER && event.clientY < MAC_WINDOW_BUTTONS_Y_BORDER) { - return; + // Also check if it has gone from the top or left if we are exiting the titlebar + // button area + if ( + !( + target.classList.contains('titlebar-buttonbox-container') && + (event.clientX < buttonRect.x || event.clientY < buttonRect.y) + ) + ) { + return; + } } } diff --git a/src/browser/base/zen-components/ZenGradientGenerator.mjs b/src/browser/base/zen-components/ZenGradientGenerator.mjs index f4591a419..9a91c3023 100644 --- a/src/browser/base/zen-components/ZenGradientGenerator.mjs +++ b/src/browser/base/zen-components/ZenGradientGenerator.mjs @@ -885,7 +885,7 @@ if (!skipSave) { await ZenWorkspacesStorage.saveWorkspaceTheme(currentWorkspace.uuid, gradient); await ZenWorkspaces._propagateWorkspaceData(); - ConfirmationHint.show(document.getElementById('PanelUI-menu-button'), 'zen-panel-ui-gradient-generator-saved-message'); + gZenUIManager.showToast('zen-panel-ui-gradient-generator-saved-message'); currentWorkspace = await ZenWorkspaces.getActiveWorkspace(); } diff --git a/src/browser/base/zen-components/ZenViewSplitter.mjs b/src/browser/base/zen-components/ZenViewSplitter.mjs index fb715e2a5..2224f6c5c 100644 --- a/src/browser/base/zen-components/ZenViewSplitter.mjs +++ b/src/browser/base/zen-components/ZenViewSplitter.mjs @@ -192,14 +192,13 @@ class ZenViewSplitter extends ZenDOMOperatedFeature { afterRearangeAction() { document.getElementById('zenSplitViewModifier').hidePopup(); - ConfirmationHint.show(document.getElementById('zen-split-views-box'), 'zen-split-view-modifier-enabled-toast', { + gZenUIManager.showToast('zen-split-view-modifier-enabled-toast', { descriptionId: 'zen-split-view-modifier-enabled-toast-description', - showDescription: true, }); } afterRearangeRemove() { - ConfirmationHint.show(document.getElementById('zen-split-views-box'), 'zen-split-view-modifier-disabled-toast'); + gZenUIManager.showToast('zen-split-view-modifier-disabled-toast'); } toggleWrapperDisplay(value) { diff --git a/src/modules/libpref/init/StaticPrefList-yaml.patch b/src/modules/libpref/init/StaticPrefList-yaml.patch index fadcff2b1..ac8018292 100644 --- a/src/modules/libpref/init/StaticPrefList-yaml.patch +++ b/src/modules/libpref/init/StaticPrefList-yaml.patch @@ -1,8 +1,8 @@ diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml -index 7364514f74703184462e8dbce3f0aafc3f850a3d..560671beddf6c216e918a47bd5dbd4e770a24ec7 100644 +index ce2393978f77f55f42ae9b97e5d40328ce8eaae4..a426679de76c2d172974ec87f5fe48e22d5ab7b0 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml -@@ -18067,7 +18067,7 @@ +@@ -18060,7 +18060,7 @@ # Whether we use the mica backdrop. Off by default for now. - name: widget.windows.mica type: bool @@ -11,7 +11,7 @@ index 7364514f74703184462e8dbce3f0aafc3f850a3d..560671beddf6c216e918a47bd5dbd4e7 mirror: once #endif -@@ -18180,6 +18180,26 @@ +@@ -18173,6 +18173,19 @@ mirror: always #endif @@ -21,13 +21,6 @@ index 7364514f74703184462e8dbce3f0aafc3f850a3d..560671beddf6c216e918a47bd5dbd4e7 + value: true + mirror: never + -+#ifdef XP_MACOSX -+- name: zen.widget.mac.mono-window-controls -+ type: RelaxedAtomicBool -+ value: false -+ mirror: always -+#endif -+ +#ifdef XP_WIN +- name: zen.widget.windows.acrylic + type: bool diff --git a/src/widget/cocoa/nsCocoaWindow-mm.patch b/src/widget/cocoa/nsCocoaWindow-mm.patch deleted file mode 100644 index 071a19813..000000000 --- a/src/widget/cocoa/nsCocoaWindow-mm.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm -index f1c87dd8faef8c6caf9248ce7d9f40c12f5db9f6..f5280b8fc6cf46d3941d1ff04835b12dd2755170 100644 ---- a/widget/cocoa/nsCocoaWindow.mm -+++ b/widget/cocoa/nsCocoaWindow.mm -@@ -51,6 +51,7 @@ - #include "mozilla/ScopeExit.h" - #include "mozilla/StaticPrefs_gfx.h" - #include "mozilla/StaticPrefs_widget.h" -+#include "mozilla/StaticPrefs_zen.h" - #include "mozilla/WritingModes.h" - #include "mozilla/layers/CompositorBridgeChild.h" - #include "mozilla/widget/Screen.h" -@@ -682,9 +683,11 @@ static unsigned int WindowMaskForBorderStyle(BorderStyle aBorderStyle) { - continue; - } - NSWindow* win = ancestor->GetCocoaWindow(); -- [[win standardWindowButton:NSWindowCloseButton] setEnabled:!aModal]; -- [[win standardWindowButton:NSWindowMiniaturizeButton] setEnabled:!aModal]; -- [[win standardWindowButton:NSWindowZoomButton] setEnabled:!aModal]; -+ -+ auto zenBtnEnabled = StaticPrefs::zen_widget_mac_mono_window_controls() ? false : !aModal; -+ [[win standardWindowButton:NSWindowCloseButton] setEnabled:zenBtnEnabled]; -+ [[win standardWindowButton:NSWindowMiniaturizeButton] setEnabled:zenBtnEnabled]; -+ [[win standardWindowButton:NSWindowZoomButton] setEnabled:zenBtnEnabled]; - } - if (aModal) { - mWindow.level = NSModalPanelWindowLevel;