From 63109b43370829bd2def3bd0a699438b3c5a92ce Mon Sep 17 00:00:00 2001 From: "mr. M" Date: Wed, 5 Feb 2025 00:35:38 +0100 Subject: [PATCH] Enhance compact mode and URL bar behavior with improved transitions and offset handling; update version numbers in surfer.json --- .../content/zen-styles/zen-compact-mode.css | 13 ++++++-- .../base/content/zen-styles/zen-urlbar.css | 6 ++-- .../base/zen-components/ZenCompactMode.mjs | 2 +- .../components/preferences/zen-settings.js | 2 ++ .../tabbrowser/content/tabbrowser-js.patch | 30 ++++++++++++------- surfer.json | 6 ++-- 6 files changed, 40 insertions(+), 19 deletions(-) diff --git a/src/browser/base/content/zen-styles/zen-compact-mode.css b/src/browser/base/content/zen-styles/zen-compact-mode.css index e6ecf3920..92d7d3ae4 100644 --- a/src/browser/base/content/zen-styles/zen-compact-mode.css +++ b/src/browser/base/content/zen-styles/zen-compact-mode.css @@ -109,6 +109,11 @@ background-size: 2000px !important; /* Dont ask me why */ backdrop-filter: blur(5px) !important; } + + & #urlbar[open][zen-floating-urlbar='true'] { + --zen-urlbar-offset: var(--zen-sidebar-width); + transition: left 0.1s ease; + } } #navigator-toolbox:hover, @@ -120,8 +125,8 @@ #navigator-toolbox:has(.tabbrowser-tab:active), #navigator-toolbox:has( *:is([panelopen='true'], [open='true'], #urlbar:not([zen-floating-urlbar='true']):focus-within):not(tab):not(.zen-compact-mode-ignore) - ):not(:has(#urlbar[zen-floating-urlbar='true']:hover)) { - &:not([animate='true']) { + ) { + &:not([animate='true']):not(:has(#urlbar[zen-floating-urlbar='true']:hover)) { --zen-compact-mode-func: linear( 0 0%, 0.002748 1%, @@ -234,6 +239,10 @@ right: -1px; left: auto; } + + & #urlbar[open][zen-floating-urlbar='true'] { + --zen-urlbar-offset: 0px; + } } } } diff --git a/src/browser/base/content/zen-styles/zen-urlbar.css b/src/browser/base/content/zen-styles/zen-urlbar.css index 68afccce8..216e43238 100644 --- a/src/browser/base/content/zen-styles/zen-urlbar.css +++ b/src/browser/base/content/zen-styles/zen-urlbar.css @@ -413,12 +413,14 @@ button.popup-notification-dropmarker { font-size: 1.15em !important; top: calc(var(--zen-toolbar-height) * 2) !important; + --zen-urlbar-center: calc(var(--zen-urlbar-offset, 0px) + 28vw); + :root[zen-right-side='true'] & { - right: 28vw !important; + right: var(--zen-urlbar-center) !important; } :root:not([zen-right-side='true']) & { - left: 28vw !important; + left: var(--zen-urlbar-center) !important; } #urlbar-container:has(&) { diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 53c039d42..32ef544ce 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -342,7 +342,7 @@ var gZenCompactModeManager = { return; } - if (this.hoverableElements[i].keepHoverDuration) { + if (this.hoverableElements[i].keepHoverDuration && !event.target.querySelector('#urlbar[zen-floating-urlbar]')) { this.flashElement(target, this.hoverableElements[i].keepHoverDuration, 'has-hover' + target.id, 'zen-has-hover'); } else { this._removeHoverFrames[target.id] = window.requestAnimationFrame(() => target.removeAttribute('zen-has-hover')); diff --git a/src/browser/components/preferences/zen-settings.js b/src/browser/components/preferences/zen-settings.js index 58c75a627..fe770629f 100644 --- a/src/browser/components/preferences/zen-settings.js +++ b/src/browser/components/preferences/zen-settings.js @@ -719,6 +719,8 @@ var zenMissingKeyboardShortcutL10n = { goHome: 'zen-key-go-home', key_redo: 'zen-key-redo', + key_inspectorMac: 'zen-key-inspector-mac', + // Devtools key_toggleToolbox: 'zen-devtools-toggle-shortcut', key_browserToolbox: 'zen-devtools-toggle-browser-toolbox-shortcut', diff --git a/src/browser/components/tabbrowser/content/tabbrowser-js.patch b/src/browser/components/tabbrowser/content/tabbrowser-js.patch index 2827589cd..56bb251ba 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 ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b9417f545 100644 +index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..838542e31112c7c3b5e9049da4a2cb6b1c975652 100644 --- a/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js @@ -406,11 +406,39 @@ @@ -225,7 +225,15 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b this.removeTabs(selectedTabs); } -@@ -4443,6 +4528,12 @@ +@@ -4427,6 +4512,7 @@ + skipSessionStore, + } = {} + ) { ++ gZenUIManager.saveScrollbarState(); + if (UserInteraction.running("browser.tabs.opening", window)) { + UserInteraction.finish("browser.tabs.opening", window); + } +@@ -4443,6 +4529,12 @@ TelemetryStopwatch.start("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab); } @@ -238,7 +246,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b // Handle requests for synchronously removing an already // asynchronously closing tab. if (!animate && aTab.closing) { -@@ -4457,7 +4548,9 @@ +@@ -4457,7 +4549,9 @@ // frame created for it (for example, by updating the visually selected // state). let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; @@ -249,7 +257,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b if ( !this._beginRemoveTab(aTab, { closeWindowFastpath: true, -@@ -4471,7 +4564,6 @@ +@@ -4471,7 +4565,6 @@ TelemetryStopwatch.cancel("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab); return; } @@ -257,7 +265,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b let lockTabSizing = !this.tabContainer.verticalMode && !aTab.pinned && -@@ -4610,14 +4702,14 @@ +@@ -4610,14 +4703,14 @@ !!this.tabsInCollapsedTabGroups.length; if ( aTab.visible && @@ -274,7 +282,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b if (closeWindow) { // We've already called beforeunload on all the relevant tabs if we get here, -@@ -5465,10 +5557,10 @@ +@@ -5465,10 +5558,10 @@ SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); } @@ -287,7 +295,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b aTab.selected || aTab.closing || // Tabs that are sharing the screen, microphone or camera cannot be hidden. -@@ -5727,6 +5819,9 @@ +@@ -5727,6 +5820,9 @@ this.tabContainer.insertBefore(aTab, neighbor); } }); @@ -297,7 +305,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b } moveTabToGroup(aTab, aGroup) { -@@ -7443,6 +7538,7 @@ +@@ -7443,6 +7539,7 @@ aWebProgress.isTopLevel ) { this.mTab.setAttribute("busy", "true"); @@ -305,7 +313,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b gBrowser._tabAttrModified(this.mTab, ["busy"]); this.mTab._notselectedsinceload = !this.mTab.selected; gBrowser.syncThrobberAnimations(this.mTab); -@@ -8411,7 +8507,7 @@ var TabContextMenu = { +@@ -8411,7 +8508,7 @@ var TabContextMenu = { ); contextUnpinSelectedTabs.hidden = !this.contextTab.pinned || !multiselectionContext; @@ -314,7 +322,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b // Move Tab items let contextMoveTabOptions = document.getElementById( "context_moveTabOptions" -@@ -8444,7 +8540,7 @@ var TabContextMenu = { +@@ -8444,7 +8541,7 @@ var TabContextMenu = { let contextMoveTabToStart = document.getElementById("context_moveToStart"); let isFirstTab = tabsToMove[0] == visibleTabs[0] || @@ -323,7 +331,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..dfc5d5cc1144a0098508a28de4f1433b contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent; document.getElementById("context_openTabInWindow").disabled = -@@ -8677,6 +8773,7 @@ var TabContextMenu = { +@@ -8677,6 +8774,7 @@ var TabContextMenu = { if (this.contextTab.multiselected) { gBrowser.removeMultiSelectedTabs(); } else { diff --git a/surfer.json b/surfer.json index 5b718b707..ec1373d72 100644 --- a/surfer.json +++ b/surfer.json @@ -19,7 +19,7 @@ "brandShortName": "Zen", "brandFullName": "Zen Browser", "release": { - "displayVersion": "1.7.4b", + "displayVersion": "1.7.5b", "github": { "repo": "zen-browser/desktop" }, @@ -39,7 +39,7 @@ "brandShortName": "Zen", "brandFullName": "Zen Twilight", "release": { - "displayVersion": "1.7.5t", + "displayVersion": "1.7.6t", "github": { "repo": "zen-browser/desktop" } @@ -53,4 +53,4 @@ "licenseType": "MPL-2.0" }, "updateHostname": "updates.zen-browser.app" -} \ No newline at end of file +}