diff --git a/l10n b/l10n
index 39b011023..6934ff4f1 160000
--- a/l10n
+++ b/l10n
@@ -1 +1 @@
-Subproject commit 39b011023d038fb8bb58eece6113919eb5c52770
+Subproject commit 6934ff4f19c344da8fd89bd72c81517217c448f2
diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js
index af26dc9da..a16572f3c 100644
--- a/src/browser/app/profile/zen-browser.js
+++ b/src/browser/app/profile/zen-browser.js
@@ -100,12 +100,6 @@ pref('zen.keyboard.shortcuts.disable-firefox', false);
pref('zen.tabs.dim-pending', true);
pref('zen.themes.updated-value-observer', false);
-#ifdef XP_MACOSX
-pref('zen.themes.tabs.legacy-location', true);
-#else
-pref('zen.themes.tabs.legacy-location', false);
-#endif
-
// Pref to enable the new profiles (TODO: Check this out!)
//pref("browser.profiles.enabled", true);
diff --git a/src/browser/base/content/ZenStartup.mjs b/src/browser/base/content/ZenStartup.mjs
index e246e4978..b884ae7fa 100644
--- a/src/browser/base/content/ZenStartup.mjs
+++ b/src/browser/base/content/ZenStartup.mjs
@@ -76,14 +76,6 @@
}
tabs.style.maxHeight = totalHeight + 'px';
//console.info('ZenThemeModifier: set tabs max-height to', totalHeight + 'px');
-
- const allTabs = document.getElementById('alltabs-button');
- allTabs.removeAttribute('hidden');
- allTabs.removeAttribute('badged');
- allTabs.setAttribute('class', 'toolbarbutton-1 zen-sidebar-action-button');
- document.getElementById('zen-sidebar-icons-wrapper').prepend(
- allTabs
- );
},
openWatermark() {
@@ -108,10 +100,6 @@
_changeSidebarLocation() {
const legacyLocation = Services.prefs.getBoolPref('zen.themes.tabs.legacy-location', false);
const kElementsToAppend = ['sidebar-splitter', 'sidebar-box'];
- if (legacyLocation) {
- kElementsToAppend.push('navigator-toolbox');
- window.document.documentElement.setAttribute('zen-sidebar-legacy', 'true');
- }
const wrapper = document.getElementById('zen-tabbox-wrapper');
const appWrapepr = document.getElementById('zen-sidebar-box-container');
for (let id of kElementsToAppend) {
@@ -124,9 +112,7 @@
const browser = document.getElementById('browser');
const toolbox = document.getElementById('navigator-toolbox');
- if (!legacyLocation) {
- browser.prepend(toolbox);
- }
+ browser.prepend(toolbox);
// remove all styles except for the width, since we are xulstoring the complet style list
const width = toolbox.style.width;
@@ -140,6 +126,34 @@
splitter.setAttribute('resizebefore', 'sibling');
splitter.setAttribute('resizeafter', 'none');
toolbox.insertAdjacentElement('afterend', splitter);
+
+ this._moveWindowButtons();
+ this._addSidebarButtons();
+ },
+
+ _moveWindowButtons() {
+ const windowControls = document.getElementById('titlebar-buttonbox-container');
+ const toolboxIcons = document.getElementById('zen-sidebar-top-buttons');
+ if (AppConstants.platform == "macosx") {
+ toolboxIcons.prepend(windowControls);
+ }
+ },
+
+ _addSidebarButtons() {
+ const sidebarBox = window.MozXULElement.parseXULToFragment(`
+
+ `);
+ document.getElementById('navigator-toolbox').prepend(sidebarBox);
+ const sideBarTopButtons = document.getElementById('zen-sidebar-top-buttons');
+
+ const panelMenu = document.getElementById('PanelUI-menu-button');
+ panelMenu.classList.add('zen-sidebar-action-button');
+ panelMenu.setAttribute('cui-areatype', 'toolbar');
+
+ sideBarTopButtons.prepend(panelMenu);
},
_focusSearchBar() {
diff --git a/src/browser/base/content/ZenUIManager.mjs b/src/browser/base/content/ZenUIManager.mjs
index 40d87ef70..c376ab8d6 100644
--- a/src/browser/base/content/ZenUIManager.mjs
+++ b/src/browser/base/content/ZenUIManager.mjs
@@ -72,10 +72,18 @@ var gZenVerticalTabsManager = {
_updateEvent() {
this._updateMaxWidth();
+ const topButtons = document.getElementById('zen-sidebar-top-buttons');
+ const customizationTarget = document.getElementById('nav-bar-customization-target');
+ const tabboxWrapper = document.getElementById('zen-tabbox-wrapper');
+ const browser = document.getElementById('browser');
if (Services.prefs.getBoolPref('zen.view.sidebar-expanded')) {
this.navigatorToolbox.setAttribute('zen-expanded', 'true');
+ this.navigatorToolbox.prepend(topButtons);
+ browser.prepend(this.navigatorToolbox);
} else {
this.navigatorToolbox.removeAttribute('zen-expanded');
+ customizationTarget.prepend(topButtons);
+ tabboxWrapper.prepend(this.navigatorToolbox);
}
if (Services.prefs.getBoolPref('zen.tabs.vertical.right-side')) {
this.navigatorToolbox.setAttribute('zen-right-side', 'true');
diff --git a/src/browser/base/content/zen-assets.jar.inc.mn b/src/browser/base/content/zen-assets.jar.inc.mn
index a75e0cc28..f6d5f10c5 100644
--- a/src/browser/base/content/zen-assets.jar.inc.mn
+++ b/src/browser/base/content/zen-assets.jar.inc.mn
@@ -4,6 +4,7 @@
content/browser/ZenStartup.mjs (content/ZenStartup.mjs)
content/browser/ZenUIManager.mjs (content/ZenUIManager.mjs)
content/browser/zen-components/ZenViewSplitter.mjs (content/zen-components/src/ZenViewSplitter.mjs)
+ content/browser/zen-components/ZenThemesCommon.mjs (content/zen-components/src/ZenThemesCommon.mjs)
content/browser/zen-components/ZenWorkspaces.mjs (content/zen-components/src/ZenWorkspaces.mjs)
content/browser/zen-components/ZenSidebarManager.mjs (content/zen-components/src/ZenSidebarManager.mjs)
content/browser/zen-components/ZenProfileDialogUI.mjs (content/zen-components/src/ZenProfileDialogUI.mjs)
diff --git a/src/browser/base/content/zen-components b/src/browser/base/content/zen-components
index 0f775df5e..da8446fc2 160000
--- a/src/browser/base/content/zen-components
+++ b/src/browser/base/content/zen-components
@@ -1 +1 @@
-Subproject commit 0f775df5e64bfd41bfbbdf857a21fc5f92a44804
+Subproject commit da8446fc27539ab8bf623b3d43ce1e8fe93cc841
diff --git a/src/browser/base/content/zen-sidebar-icons.inc.xhtml b/src/browser/base/content/zen-sidebar-icons.inc.xhtml
index 4b8522959..37c305428 100644
--- a/src/browser/base/content/zen-sidebar-icons.inc.xhtml
+++ b/src/browser/base/content/zen-sidebar-icons.inc.xhtml
@@ -1,9 +1,4 @@
\ No newline at end of file
diff --git a/src/browser/base/content/zen-styles/zen-browser-container.css b/src/browser/base/content/zen-styles/zen-browser-container.css
index a87f7a55e..b09c1b151 100644
--- a/src/browser/base/content/zen-styles/zen-browser-container.css
+++ b/src/browser/base/content/zen-styles/zen-browser-container.css
@@ -1,4 +1,12 @@
:root:not([inDOMFullscreen='true']):not([chromehidden~='location']):not([chromehidden~='toolbar']) {
+ #tabbrowser-tabbox {
+ --zen-webview-correction-margin: 2px;
+
+ & > *:not(#tabbrowser-tabpanels) {
+ margin-top: var(--zen-webview-correction-margin);
+ }
+ }
+
& #tabbrowser-tabbox #tabbrowser-tabpanels .browserSidebarContainer {
width: -moz-available;
border-radius: var(--zen-webview-border-radius, var(--zen-border-radius));
@@ -6,7 +14,6 @@
position: relative;
/* This fixes an issue with the left border */
- --zen-webview-correction-margin: 2px;
margin-left: var(--zen-webview-correction-margin);
margin-top: var(--zen-webview-correction-margin);
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 eda76c8a4..dec819827 100644
--- a/src/browser/base/content/zen-styles/zen-compact-mode.css
+++ b/src/browser/base/content/zen-styles/zen-compact-mode.css
@@ -85,24 +85,11 @@
@media not (-moz-bool-pref: 'zen.view.compact.hide-toolbar') {
#navigator-toolbox {
/* Remove the top margin */
- /* The toolbox isn't relative to the webview anymore, meaning we can't just add a static value and call it a day...
- * The top margin is calculated by taking the following factors into account:
- * 1. Element separation
- * 2. Extra margin to separate from the webview
- * 3. Add element separation variable, to avoid overlaping with the toolbar
- * 4. Calculate toolbar height, taken from zen-urlbar.css
- */
- --zen-compact-toolbox-margin: calc(
- var(--zen-element-separation) + 0.8rem +
- (18px + (var(--toolbarbutton-inner-padding) * 2))
- ) var(--zen-compact-toolbox-margin-single) var(--zen-compact-toolbox-margin-single) var(--zen-compact-toolbox-margin-single);
+ --zen-compact-toolbox-margin: calc(var(--zen-compact-toolbox-margin-single) / 2)
+ var(--zen-compact-toolbox-margin-single) var(--zen-compact-toolbox-margin-single)
+ var(--zen-compact-toolbox-margin-single);
margin-top: 0 !important;
- :root[zen-sidebar-legacy='true'] & {
- --zen-compact-toolbox-margin: calc(var(--zen-compact-toolbox-margin-single) / 2)
- var(--zen-compact-toolbox-margin-single) var(--zen-compact-toolbox-margin-single)
- var(--zen-compact-toolbox-margin-single);
- }
}
#zen-sidebar-web-panel-wrapper,
diff --git a/src/browser/base/content/zen-styles/zen-tabs/vertical-tabs.css b/src/browser/base/content/zen-styles/zen-tabs/vertical-tabs.css
index b4f155c2c..080265813 100644
--- a/src/browser/base/content/zen-styles/zen-tabs/vertical-tabs.css
+++ b/src/browser/base/content/zen-styles/zen-tabs/vertical-tabs.css
@@ -14,10 +14,6 @@
#browser {
--zen-toolbox-padding: 5px;
-
- :root:not([zen-sidebar-legacy='true']) & {
- --zen-toolbox-top-align: var(--zen-toolbox-padding);
- }
}
#navigator-toolbox {
@@ -70,8 +66,6 @@
max-width: unset !important;
padding: 0 !important;
- font-size: var(--urlbarView-small-font-size);
-
position: relative;
height: calc(var(--tab-min-height) + var(--tab-block-margin) * 2) !important;
@@ -99,7 +93,7 @@
#zen-sidebar-icons-wrapper {
background: transparent;
- & toolbarbutton {
+ & toolbarbutton:not(#zen-workspaces-button) {
width: fit-content;
padding: 0 !important;
}
@@ -109,7 +103,6 @@
margin-inline-end: 0 !important;
padding-top: 0 !important;
border-top: solid transparent 0px !important;
- margin: 0 2px !important;
&[showborder] {
padding-top: 4px !important;
@@ -161,10 +154,9 @@
--zen-toolbox-min-width: 150px;
& #zen-sidebar-icons-wrapper {
- display: grid;
+ display: flex;
/* Make sure the icons take most of the space, smartly */
- grid-template-columns: repeat(auto-fit, minmax(34px, auto));
- gap: 4px;
+ flex-direction: row;
justify-content: space-between;
padding-top: calc(var(--zen-toolbox-padding) * 2);
@@ -172,7 +164,7 @@
width: 100%;
position: relative;
- --toolbarbutton-inner-padding: 9px !important;
+ --toolbarbutton-inner-padding: var(--zen-toolbar-button-inner-padding) !important;
justify-content: space-between;
}
@@ -241,10 +233,6 @@
}
@media (-moz-bool-pref: 'zen.view.sidebar-expanded.on-hover') {
- :root:not([zen-sidebar-legacy='true']) #navigator-toolbox:is([zen-user-hover='true']:hover, :not([zen-user-hover='true'])) {
- padding-right: 47px !important;
- }
-
& #zen-profile-button {
width: 100% !important;
padding: var(--toolbarbutton-inner-padding) !important;
@@ -471,5 +459,20 @@
margin-right: var(--zen-element-separation);
padding: 0 !important;
opacity: 0;
+ display: none;
+ }
+
+ /* Mark: Sidebar top buttons */
+ #zen-sidebar-top-buttons {
+ --toolbarbutton-inner-padding: var(--zen-toolbar-button-inner-padding) !important;
+
+ gap: 5px;
+ & .zen-sidebar-action-button {
+ padding: 0 !important;
+
+ & label {
+ display: none !important;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/src/browser/base/content/zen-styles/zen-theme.css b/src/browser/base/content/zen-styles/zen-theme.css
index d608359aa..741949b90 100644
--- a/src/browser/base/content/zen-styles/zen-theme.css
+++ b/src/browser/base/content/zen-styles/zen-theme.css
@@ -74,6 +74,10 @@
--zen-button-border-radius: 7px;
--zen-button-padding: 0.6rem 1.2rem;
+ /* Toolbar */
+ --zen-toolbar-height: 39px;
+ --zen-toolbar-button-inner-padding: 6px;
+
/* Other colors */
--urlbar-box-bgcolor: var(--zen-urlbar-background) !important;
--toolbar-field-focus-background-color: var(--urlbar-box-bgcolor) !important;
diff --git a/src/browser/base/content/zen-styles/zen-toolbar.css b/src/browser/base/content/zen-styles/zen-toolbar.css
index c5d029a22..6687dd523 100644
--- a/src/browser/base/content/zen-styles/zen-toolbar.css
+++ b/src/browser/base/content/zen-styles/zen-toolbar.css
@@ -1,4 +1,5 @@
-#nav-bar {
+#nav-bar,
+#zen-sidebar-top-buttons {
background: transparent;
}
diff --git a/src/browser/base/content/zen-styles/zen-urlbar.css b/src/browser/base/content/zen-styles/zen-urlbar.css
index 35ae0a39e..f7a7a0f14 100644
--- a/src/browser/base/content/zen-styles/zen-urlbar.css
+++ b/src/browser/base/content/zen-styles/zen-urlbar.css
@@ -171,53 +171,26 @@ button.popup-notification-dropmarker {
margin-top: 5px;
}
-:root:not([zen-sidebar-legacy='true']) {
- @media (max-width: 650px) {
- #urlbar-container {
- width: calc(176px + 2 * (24px + 2 * var(--toolbarbutton-inner-padding)));
- }
-
- #nav-bar[downloadsbuttonshown] #urlbar-container,
- #nav-bar[unifiedextensionsbuttonshown] #urlbar-container {
- width: calc(76px + 24px + 2 * var(--toolbarbutton-inner-padding));
- }
-
- #nav-bar[downloadsbuttonshown][unifiedextensionsbuttonshown] #urlbar-container {
- width: 176px;
- }
-
- #identity-icon-box {
- max-width: 70px;
- }
-
- #urlbar-zoom-button {
- display: none;
- }
+@media (max-width: 550px) {
+ #urlbar-container {
+ width: calc(176px + 2 * (24px + 2 * var(--toolbarbutton-inner-padding)));
}
-}
-:root[zen-sidebar-legacy='true'] {
- @media (max-width: 550px) {
- #urlbar-container {
- width: calc(176px + 2 * (24px + 2 * var(--toolbarbutton-inner-padding)));
- }
+ #nav-bar[downloadsbuttonshown] #urlbar-container,
+ #nav-bar[unifiedextensionsbuttonshown] #urlbar-container {
+ width: calc(76px + 24px + 2 * var(--toolbarbutton-inner-padding));
+ }
- #nav-bar[downloadsbuttonshown] #urlbar-container,
- #nav-bar[unifiedextensionsbuttonshown] #urlbar-container {
- width: calc(76px + 24px + 2 * var(--toolbarbutton-inner-padding));
- }
+ #nav-bar[downloadsbuttonshown][unifiedextensionsbuttonshown] #urlbar-container {
+ width: 176px;
+ }
- #nav-bar[downloadsbuttonshown][unifiedextensionsbuttonshown] #urlbar-container {
- width: 176px;
- }
+ #identity-icon-box {
+ max-width: 70px;
+ }
- #identity-icon-box {
- max-width: 70px;
- }
-
- #urlbar-zoom-button {
- display: none;
- }
+ #urlbar-zoom-button {
+ display: none;
}
}
@@ -272,6 +245,19 @@ button.popup-notification-dropmarker {
}
}
+#nav-bar,
+#zen-sidebar-top-buttons {
+ min-height: var(--zen-toolbar-height) !important;
+ height: var(--zen-toolbar-height) !important;
+ max-height: var(--zen-toolbar-height) !important;
+ display: flex;
+ align-items: center;
+}
+
+#browser:not(:has([zen-expanded="true"])) #nav-bar {
+ padding-left: calc(var(--zen-toolbox-padding) * 2 + 1px);
+}
+
/* Other small tweaks */
#nav-bar-customization-target {
/* Don't grow if potentially-user-sized elements (like the searchbar or the
@@ -279,6 +265,8 @@ button.popup-notification-dropmarker {
* available space as much as possible, see bug 1795260. */
min-width: 0;
+ --toolbarbutton-inner-padding: var(--zen-toolbar-button-inner-padding);
+
/* Add space to beginning of toolbar and make that space click the first */
> :is(toolbarbutton, toolbaritem):first-child,
> toolbarpaletteitem:first-child > :is(toolbarbutton, toolbaritem) {
@@ -286,17 +274,10 @@ button.popup-notification-dropmarker {
}
}
-@media (-moz-bool-pref: 'zen.view.compact') or (-moz-bool-pref: 'zen.themes.tabs.legacy-location') {
- #nav-bar {
- padding-left: var(--zen-element-separation) !important;
- }
-
- .titlebar-button:last-child {
- padding-right: var(--zen-element-separation) !important;
- }
+.titlebar-button:last-child {
+ padding-right: var(--zen-element-separation) !important;
}
-
#PersonalToolbar:not([collapsed="true"]) {
padding-bottom: 6px;
}
\ No newline at end of file
diff --git a/src/browser/base/content/zen-styles/zen-workspaces.css b/src/browser/base/content/zen-styles/zen-workspaces.css
index a437ae98b..d9527e203 100644
--- a/src/browser/base/content/zen-styles/zen-workspaces.css
+++ b/src/browser/base/content/zen-styles/zen-workspaces.css
@@ -1,12 +1,9 @@
#zen-workspaces-button {
- border: 1px solid var(--zen-colors-border);
- border-radius: var(--zen-button-border-radius);
- min-height: 33px;
justify-content: center;
align-items: center;
display: flex;
- box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;
- -moz-window-dragging: no-drag;
+ margin: 0 30px;
+ opacity: .6;
}
#zen-workspaces-button .zen-workspace-sidebar-name {
@@ -15,7 +12,7 @@
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
- font-size: 12px;
+ font-size: 13px;
pointer-events: none;
}
@@ -32,7 +29,6 @@
& #zen-workspaces-button {
width: calc(var(--zen-sidebar-action-button-width) - 1px) !important;
margin-top: .2rem;
- height: calc(var(--zen-sidebar-action-button-width) - 10px) !important;
}
& #zen-workspaces-button .zen-workspace-sidebar-name {
@@ -52,7 +48,6 @@
white-space: nowrap;
text-overflow: ellipsis;
display: flex;
- padding: 2px 10px;
width: calc(100% - var(--zen-tabbrowser-padding) * 6) !important;
gap: 0.5ch;
}
diff --git a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch
index 693e332f2..d7533e8ef 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 f466105b8290b13c672351bb68dd92644dd670fe..b195cd59d7ff07ff512e7388c9dc33f3c661d955 100644
+index 289c3df7dcd6fa6b35681ce61c1e920b6a2651d7..f15e9e92a27f1779cda6521e33915ddc4e3a93e5 100644
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
@@ -25,7 +25,7 @@ ChromeUtils.defineLazyGetter(lazy, "gWidgetsBundle", function () {
@@ -23,7 +23,7 @@ index f466105b8290b13c672351bb68dd92644dd670fe..b195cd59d7ff07ff512e7388c9dc33f3
lazy.resetPBMToolbarButtonEnabled ? "reset-pbm-toolbar-button" : null,
].filter(name => name);
-@@ -288,7 +287,7 @@ var CustomizableUIInternal = {
+@@ -288,10 +287,10 @@ var CustomizableUIInternal = {
{
type: CustomizableUI.TYPE_TOOLBAR,
defaultPlacements: [
@@ -31,4 +31,8 @@ index f466105b8290b13c672351bb68dd92644dd670fe..b195cd59d7ff07ff512e7388c9dc33f3
+// "firefox-view-button",
"tabbrowser-tabs",
"new-tab-button",
- "alltabs-button",
+- "alltabs-button",
++// "alltabs-button",
+ ],
+ defaultCollapsed: null,
+ },
diff --git a/src/browser/components/preferences/zen-settings.js b/src/browser/components/preferences/zen-settings.js
index fcce3fc11..d7583e4e2 100644
--- a/src/browser/components/preferences/zen-settings.js
+++ b/src/browser/components/preferences/zen-settings.js
@@ -510,13 +510,10 @@ var gZenLooksAndFeel = {
this._initializeTabbarExpandForm();
gZenThemeBuilder.init();
gZenMarketplaceManager.init();
- var onLegacyToolbarChange = this.onLegacyToolbarChange.bind(this);
- Services.prefs.addObserver('zen.themes.tabs.legacy-location', onLegacyToolbarChange);
var onPreferColorSchemeChange = this.onPreferColorSchemeChange.bind(this);
window.matchMedia('(prefers-color-scheme: dark)').addListener(onPreferColorSchemeChange);
this.onPreferColorSchemeChange();
window.addEventListener('unload', () => {
- Services.prefs.removeObserver('zen.themes.tabs.legacy-location', onLegacyToolbarChange);
window.matchMedia('(prefers-color-scheme: dark)').removeListener(onPreferColorSchemeChange);
});
setTimeout(() => {
@@ -576,14 +573,6 @@ var gZenLooksAndFeel = {
}
},
- async onLegacyToolbarChange(event) {
- let buttonIndex = await confirmRestartPrompt(true, 1, true, false);
- if (buttonIndex == CONFIRM_RESTART_PROMPT_RESTART_NOW) {
- Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart);
- return;
- }
- },
-
_initializeTabbarExpandForm() {
const form = document.getElementById('zen-expand-tabbar-strat');
const radios = form.querySelectorAll('input[type=radio]');
@@ -872,11 +861,6 @@ Preferences.addAll([
type: 'bool',
default: false,
},
- {
- id: 'zen.themes.tabs.legacy-location',
- type: 'bool',
- default: false,
- },
{
id: 'zen.workspaces.hide-default-container-indicator',
type: 'bool',
diff --git a/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml b/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml
index 53d350b0d..7bcd0646f 100644
--- a/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml
+++ b/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml
@@ -198,9 +198,6 @@
data-l10n-id="zen-look-and-feel-compact-toolbar-flash-popup"
preference="zen.view.compact.toolbar-flash-popup"/>
-