From 4cbf5740e73e1fd6385d471b67f757a25c7a73aa Mon Sep 17 00:00:00 2001 From: afonso Date: Fri, 31 Jan 2025 18:51:58 +0000 Subject: [PATCH 1/8] Added a preference to toggle the sidebar opening on hover in compact mode --- src/browser/app/profile/zen-browser.js | 1 + .../base/zen-components/ZenCompactMode.mjs | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index 0fe55448f..e81596551 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -123,6 +123,7 @@ pref('zen.view.compact.toolbar-hide-after-hover.duration', 1000); pref('zen.view.compact.color-toolbar', true); pref('zen.view.compact.color-sidebar', true); pref('zen.view.compact.animate-sidebar', true); +pref('zen.view.compact.show-sidebar-on-hover', true); pref('zen.urlbar.behavior', 'floating-on-type'); // default, floating-on-type, float diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 53c039d42..32d20149a 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -276,17 +276,19 @@ var gZenCompactModeManager = { }, get hoverableElements() { - return [ - { + const panels = []; + if (Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true)) { + panels.push({ element: this.sidebar, screenEdge: this.sidebarIsOnRight ? 'right' : 'left', keepHoverDuration: 100, - }, - { - element: document.getElementById('zen-appcontent-navbar-container'), - screenEdge: 'top', - }, - ]; + }); + } + panels.push({ + element: document.getElementById('zen-appcontent-navbar-container'), + screenEdge: 'top', + }); + return panels; }, flashSidebar(duration = lazyCompactMode.COMPACT_MODE_FLASH_DURATION) { From 908c8114bb50f9b9eb837eed947cbd9f4d9eeca4 Mon Sep 17 00:00:00 2001 From: Josh Donnell Date: Tue, 11 Feb 2025 10:21:59 +0000 Subject: [PATCH 2/8] refactor: the hoverableElements function to be more readable --- .../base/zen-components/ZenCompactMode.mjs | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 32d20149a..08884be78 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -276,19 +276,20 @@ var gZenCompactModeManager = { }, get hoverableElements() { - const panels = []; - if (Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true)) { - panels.push({ - element: this.sidebar, - screenEdge: this.sidebarIsOnRight ? 'right' : 'left', - keepHoverDuration: 100, - }); - } - panels.push({ - element: document.getElementById('zen-appcontent-navbar-container'), - screenEdge: 'top', - }); - return panels; + const showSidebarOnHover = Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true); + return showSidebarOnHover + ? [ + { + element: this.sidebar, + screenEdge: this.sidebarIsOnRight ? 'right' : 'left', + keepHoverDuration: 100, + }, + { + element: document.getElementById('zen-appcontent-navbar-container'), + screenEdge: 'top', + }, + ] + : []; }, flashSidebar(duration = lazyCompactMode.COMPACT_MODE_FLASH_DURATION) { From 17b72bc8fd9dafcf28a2ae80faa7f2c8bda53187 Mon Sep 17 00:00:00 2001 From: Josh Donnell Date: Tue, 11 Feb 2025 13:15:57 +0000 Subject: [PATCH 3/8] fix: hoverableElements function to include the container by default --- .../base/zen-components/ZenCompactMode.mjs | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 08884be78..6b726e55d 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -277,19 +277,21 @@ var gZenCompactModeManager = { get hoverableElements() { const showSidebarOnHover = Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true); - return showSidebarOnHover - ? [ - { - element: this.sidebar, + return [ + ...(showSidebarOnHover + ? [ + { + element: this.sidebar, screenEdge: this.sidebarIsOnRight ? 'right' : 'left', - keepHoverDuration: 100, - }, - { - element: document.getElementById('zen-appcontent-navbar-container'), - screenEdge: 'top', - }, - ] - : []; + keepHoverDuration: 100, + }, + ] + : []), + { + element: document.getElementById('zen-appcontent-navbar-container'), + screenEdge: 'top', + }, + ]; }, flashSidebar(duration = lazyCompactMode.COMPACT_MODE_FLASH_DURATION) { From 4ce9385fd5f6384a1b9b43a9e02c6f643709ac4e Mon Sep 17 00:00:00 2001 From: afonsofrancof Date: Tue, 11 Feb 2025 20:11:50 +0000 Subject: [PATCH 4/8] Fix formatting --- src/browser/base/zen-components/ZenCompactMode.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 6b726e55d..c5960965f 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -282,7 +282,7 @@ var gZenCompactModeManager = { ? [ { element: this.sidebar, - screenEdge: this.sidebarIsOnRight ? 'right' : 'left', + screenEdge: this.sidebarIsOnRight ? 'right' : 'left', keepHoverDuration: 100, }, ] From 1b8891a59b03ca10770f1311d7293b3e0c5c8204 Mon Sep 17 00:00:00 2001 From: afonsofrancof Date: Tue, 18 Feb 2025 15:20:51 +0000 Subject: [PATCH 5/8] Made the loading of the sidebar hover preference lazy --- src/browser/base/zen-components/ZenCompactMode.mjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index c5960965f..3b4fce369 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -276,7 +276,10 @@ var gZenCompactModeManager = { }, get hoverableElements() { - const showSidebarOnHover = Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true); + if (typeof this._showSidebarOnHover === 'undefined') { + this._showSidebarOnHover = Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true); + } + const showSidebarOnHover = this._showSidebarOnHover; return [ ...(showSidebarOnHover ? [ From 2345e144cf0c9c00634a28c19619c7b3fc3ed48b Mon Sep 17 00:00:00 2001 From: afonsofrancof Date: Tue, 18 Feb 2025 20:12:06 +0000 Subject: [PATCH 6/8] Applied the show-on-hover preference to the topbar aswell. --- .../base/zen-components/ZenCompactMode.mjs | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 3b4fce369..4e306c736 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -280,21 +280,19 @@ var gZenCompactModeManager = { this._showSidebarOnHover = Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true); } const showSidebarOnHover = this._showSidebarOnHover; - return [ - ...(showSidebarOnHover - ? [ - { - element: this.sidebar, - screenEdge: this.sidebarIsOnRight ? 'right' : 'left', - keepHoverDuration: 100, - }, - ] - : []), - { - element: document.getElementById('zen-appcontent-navbar-container'), - screenEdge: 'top', - }, - ]; + return !showSidebarOnHover + ? [] + : [ + { + element: this.sidebar, + screenEdge: this.sidebarIsOnRight ? 'right' : 'left', + keepHoverDuration: 100, + }, + { + element: document.getElementById('zen-appcontent-navbar-container'), + screenEdge: 'top', + }, + ]; }, flashSidebar(duration = lazyCompactMode.COMPACT_MODE_FLASH_DURATION) { From a3af69c978c6294cdf339c9d96d4599c99d01f72 Mon Sep 17 00:00:00 2001 From: afonsofrancof Date: Tue, 18 Feb 2025 23:12:54 +0000 Subject: [PATCH 7/8] Changed the preference name to include toolbar --- src/browser/app/profile/zen-browser.js | 2 +- src/browser/base/zen-components/ZenCompactMode.mjs | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index e81596551..c8b6788e4 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -123,7 +123,7 @@ pref('zen.view.compact.toolbar-hide-after-hover.duration', 1000); pref('zen.view.compact.color-toolbar', true); pref('zen.view.compact.color-sidebar', true); pref('zen.view.compact.animate-sidebar', true); -pref('zen.view.compact.show-sidebar-on-hover', true); +pref('zen.view.compact.show-sidebar-and-toolbar-on-hover', true); pref('zen.urlbar.behavior', 'floating-on-type'); // default, floating-on-type, float diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 4e306c736..5ad2252bf 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -276,11 +276,13 @@ var gZenCompactModeManager = { }, get hoverableElements() { - if (typeof this._showSidebarOnHover === 'undefined') { - this._showSidebarOnHover = Services.prefs.getBoolPref('zen.view.compact.show-sidebar-on-hover', true); + if (typeof this._showSidebarAndToolbarOnHover === 'undefined') { + this._showSidebarAndToolbarOnHover = Services.prefs.getBoolPref( + 'zen.view.compact.show-sidebar-and-toolbar-on-hover', + true + ); } - const showSidebarOnHover = this._showSidebarOnHover; - return !showSidebarOnHover + return !this._showSidebarAndToolbarOnHover ? [] : [ { From dccee5847687fd63794b10d4f5c49f73fa992e04 Mon Sep 17 00:00:00 2001 From: afonsofrancof Date: Tue, 18 Feb 2025 23:22:53 +0000 Subject: [PATCH 8/8] Added the window buttons --- .../base/zen-components/ZenCompactMode.mjs | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/browser/base/zen-components/ZenCompactMode.mjs b/src/browser/base/zen-components/ZenCompactMode.mjs index 5ad2252bf..e35586b22 100644 --- a/src/browser/base/zen-components/ZenCompactMode.mjs +++ b/src/browser/base/zen-components/ZenCompactMode.mjs @@ -282,19 +282,24 @@ var gZenCompactModeManager = { true ); } - return !this._showSidebarAndToolbarOnHover - ? [] - : [ - { - element: this.sidebar, - screenEdge: this.sidebarIsOnRight ? 'right' : 'left', - keepHoverDuration: 100, - }, - { - element: document.getElementById('zen-appcontent-navbar-container'), - screenEdge: 'top', - }, - ]; + return [ + ...(!this._showSidebarAndToolbarOnHover + ? [] + : [ + { + element: this.sidebar, + screenEdge: this.sidebarIsOnRight ? 'right' : 'left', + keepHoverDuration: 100, + }, + { + element: document.getElementById('zen-appcontent-navbar-container'), + screenEdge: 'top', + }, + ]), + { + element: gZenVerticalTabsManager.actualWindowButtons, + }, + ]; }, flashSidebar(duration = lazyCompactMode.COMPACT_MODE_FLASH_DURATION) {