Compare commits

...

93 Commits

Author SHA1 Message Date
mauro-balades
49de0de5ca Update submodule commit in l10n 2024-09-30 00:41:40 +02:00
mauro-balades
84f0a478b4 Update zen-components submodule commit 2024-09-30 00:41:16 +02:00
Mauro Baladés
58fcbd9dfa Update zen-components submodule commit
``
2024-09-29 22:27:03 +03:00
Mauro Baladés
69093204b9 Update sign.ps1 script to include git pull command 2024-09-29 21:54:43 +03:00
mauro-balades
021e654202 Update submodule commit in l10n 2024-09-29 21:13:31 +02:00
mauro-balades
f7ebf48e49 Fixed not updating the theme list when spamming the disabled button 2024-09-29 20:54:18 +02:00
mauro-balades
7369490478 🔖 Update version to 1.0.1-a.6 2024-09-29 18:19:28 +00:00
mauro-balades
6117c4a877 Update zen-components submodule commit 2024-09-29 20:18:37 +02:00
mauro-balades
03fe76b14a Fixed workspace cycling with shortcuts 2024-09-29 19:03:28 +02:00
mauro-balades
4eaf8ddaa2 Fixed workspace cycle using shortcuts 2024-09-29 19:01:56 +02:00
mauro-balades
bc03bc06c4 Fix issue with saving settings in Zen CKS preferences 2024-09-29 14:25:10 +02:00
mauro-balades
576541c4f1 Fixed addons not updating! 2024-09-29 13:59:23 +02:00
mauro-balades
c9df1d8b99 Tried to fix addon updates 2024-09-29 13:20:32 +02:00
mauro-balades
99569e4588 Fixed duplicate keys on settings page (closes #https://github.com/zen-browser/desktop/issues/1784) 2024-09-29 12:51:40 +02:00
mauro-balades
dcd4dc5d44 Merge branch 'main' of https://github.com/zen-browser/desktop 2024-09-29 12:18:24 +02:00
mauro-balades
40890470fe Added preferences for split views and tabs unloader 2024-09-29 12:18:21 +02:00
mauro 🤙
08c7a397bc Merge pull request #1795 from KarimElsayad247/docs/missing-build-step
Add necessary step for building to Readme
2024-09-29 11:56:07 +02:00
Karim Elsayad
469260905c Add necessary step for building
The browser would fails to launch properly without invoking
this command, which I only discovered in a closed issue #960
2024-09-29 12:47:15 +03:00
mauro-balades
c29a81d710 Add warning for unsafed shortcuts 2024-09-29 11:36:23 +02:00
mauro-balades
d0b6f9489c Prevent KBS from being registrered if the view is hidden 2024-09-28 22:12:51 +02:00
mauro-balades
4d019067ef Refactor ZenCustomizableUI.sys.mjs and zen-sidebar-icons.inc.xhtml 2024-09-28 22:10:37 +02:00
mauro-balades
ffcf2a040c Added tab unloader to the settings page (WIP) 2024-09-28 08:30:03 +02:00
mauro-balades
a222e866fb Refactor CSS to update primary accent hover color 2024-09-27 23:44:27 +02:00
mauro-balades
f4b77e602f Update subproject commit reference
Refactor CSS to update primary accent hover color
Update subproject commit reference
Update subproject commit reference
Refactor CSS to update primary accent hover color
2024-09-27 20:34:49 +02:00
mauro-balades
b0f5eb0f47 Update subproject commit reference 2024-09-27 20:09:09 +02:00
mauro-balades
922e893bbf Refactor CSS to update primary accent hover color 2024-09-27 19:33:30 +02:00
mauro-balades
48a1ac71a3 Refactor CSS to update primary accent hover color 2024-09-27 19:28:41 +02:00
mauro-balades
5c564faf6b Update subproject commit reference 2024-09-27 19:25:35 +02:00
mauro-balades
6c4af9bc71 Update subproject commit reference 2024-09-27 19:17:26 +02:00
mauro-balades
fc46e4ae79 Refactor vertical tabs CSS to improve layout and transitions 2024-09-27 18:56:43 +02:00
mauro-balades
78f60b866e Refactor vertical tabs CSS for improved layout and transitions 2024-09-27 18:43:22 +02:00
mauro-balades
cb0d9b8633 Merge branch 'main' of https://github.com/zen-browser/desktop 2024-09-27 18:17:48 +02:00
mauro 🤙
cbd3a5bff6 Merge pull request #1770 from zen-browser/revert-1757-fix_layout_shifts_on_hover
Revert "Fix sidebar layout shift when expand on hover is on"
2024-09-27 18:17:37 +02:00
mauro 🤙
0310187c8e Revert "Fix sidebar layout shift when expand on hover is on" 2024-09-27 18:17:28 +02:00
mauro-balades
ba66550c2c Merge branch 'main' of https://github.com/zen-browser/desktop 2024-09-27 18:12:56 +02:00
mauro-balades
5ff141ded3 Update tab unloader timeout to 20 minutes 2024-09-27 18:12:50 +02:00
mauro 🤙
de5619e580 Merge pull request #1757 from DanielSRS/fix_layout_shifts_on_hover
Fix sidebar layout shift when expand on hover is on
2024-09-27 18:12:36 +02:00
Daniel Santa Rosa
8dfb6e7667 Fix sidebar layout shift when expand on hover is on 2024-09-26 20:30:32 -03:00
mauro-balades
e722fc6cca Enable user context privacy settings 2024-09-26 19:00:41 +02:00
mauro-balades
c9bbc14ee2 Update subproject commit reference in zen-components 2024-09-26 18:59:01 +02:00
mauro-balades
54e787a6c5 Do not show default container context menu if disabled 2024-09-26 18:58:07 +02:00
mauro-balades
92f7d5d9f5 Update subproject commit reference in zen-components 2024-09-26 18:50:30 +02:00
mauro-balades
fed3f8623c Update subproject commit reference in zen-components 2024-09-26 18:47:42 +02:00
mauro-balades
bd9f68e0c0 Refactor preferences for tab unloading feature 2024-09-26 18:44:33 +02:00
mauro-balades
c32c16d932 Fixed updating keyboard shortcuts on settings 2024-09-26 17:20:55 +02:00
mauro-balades
d8797fceb2 Added paste and go buttons to the URL bar 2024-09-26 17:17:16 +02:00
mauro-balades
996c292916 Refactor tab width calculation in tabs.js 2024-09-25 21:37:39 +02:00
mauro-balades
ac7bf6a007 Refactor zen-sidebar-panels.css for improved transition and box-shadow 2024-09-25 18:42:49 +02:00
mauro-balades
aaee7c44ea Update subproject commit in zen-components 2024-09-25 17:59:15 +02:00
mauro-balades
71c20bdf98 Fixed extra width on right side compact mode and sidebar toolbar being hidden in fullscreen mode 2024-09-25 17:49:15 +02:00
mauro 🤙
e9f938fb4b Merge pull request #1731 from BrhmDev/fix/expand-on-hover-moving-page
Fix expand on hover moving page
2024-09-25 17:38:52 +02:00
mauro-balades
e180e3dbd0 Refactor zen-sidebar-panels.css for improved transition and box-shadow 2024-09-25 17:38:11 +02:00
mauro-balades
a5f6e689fa Update subproject commit in zen-components 2024-09-25 17:17:25 +02:00
mauro 🤙
10711097a6 Merge pull request #1708 from BrhmDev/feature/make-zen-sidebar-draggable
Make zen sidebar draggable
2024-09-25 17:17:00 +02:00
mauro-balades
c458363d5b Update subproject commit in zen-components
Refactor zen-compact-mode.css for normal sizemode
2024-09-25 17:16:05 +02:00
mauro-balades
bbff11bc71 Update keyboard shortcuts in zen-browser.js 2024-09-25 17:06:57 +02:00
brahim
ff67caa61d Fix expand on hover moving page. 2024-09-25 15:18:55 +02:00
brahim
c785d4c59c Fix zen sidebar splitters when pinned. 2024-09-25 02:21:15 +02:00
brahim
43c86ea74c Add 2 splitters to resize Zen sidebar on all sides, rewrite handleSplitter method 2024-09-25 01:45:16 +02:00
brahim
ed4ab842a5 Add drag function for Zen Sidebar 2024-09-25 01:45:16 +02:00
Mauro Baladés
cc498fad22 Update subproject commit in l10n and zen-components 2024-09-24 23:47:06 +03:00
mauro-balades
614be445a4 Update subproject commit in l10n and zen-components 2024-09-24 21:41:32 +02:00
mauro-balades
bdb1e65dfd Update subproject commit in l10n and zen-components 2024-09-24 21:38:48 +02:00
mauro-balades
9d85ddafaa Update subproject commit in l10n and zen-components 2024-09-24 21:33:44 +02:00
mauro-balades
b1c90ceed2 Update subproject commit in l10n and zen-components 2024-09-24 21:30:34 +02:00
mauro-balades
863abd3a70 Update subproject commit in l10n and zen-components
Fix event handling for macOS in zen-settings.js
2024-09-24 21:20:50 +02:00
mauro-balades
45e3b9e22b Update subproject commit in l10n and zen-components 2024-09-24 21:10:43 +02:00
mauro-balades
779fd3fa3a Update subproject commit in l10n and zen-components 2024-09-24 21:04:43 +02:00
mauro-balades
d9c825a7de Update subproject commit in l10n and zen-components 2024-09-24 20:48:02 +02:00
mauro-balades
a0244dc60d 🔖 Update version to 1.0.1-a.5 2024-09-24 18:18:31 +00:00
mauro-balades
5ca57e292c Update subproject commit in l10n and zen-components 2024-09-24 20:17:02 +02:00
mauro-balades
c494973e16 Update subproject commit in l10n and zen-components
``
2024-09-24 20:16:50 +02:00
mauro-balades
a9e0fca099 Update subproject commit in l10n and zen-components 2024-09-24 17:31:29 +02:00
mauro-balades
dd8299d10a Update subproject commit in l10n and zen-components 2024-09-24 16:58:16 +02:00
mauro-balades
68cfdedc45 Update subproject commit in l10n and zen-components 2024-09-24 16:47:52 +02:00
mauro-balades
5f64f9e651 FIxed unified extensions disappearing 2024-09-24 12:20:11 +02:00
mauro-balades
c17620ce54 Update subproject commit in l10n 2024-09-24 10:20:59 +02:00
mauro 🤙
aadb3be0ea Update zen-browser-ui.css 2024-09-23 15:49:13 -07:00
mauro 🤙
554a976649 Update zen-browser-container.css 2024-09-23 15:46:31 -07:00
Mauro Baladés
72ec61c302 Update version to 1.0.1-a.4 in update.xml files and open Visual Studio Code 2024-09-23 22:38:25 +03:00
mauro-balades
5b391fe52e 🔖 Update version to 1.0.1-a.4 2024-09-23 18:35:50 +00:00
mauro 🤙
e133a7746d Merge pull request #1648 from HarryHeres/main
Removing KeyEventHandler patch for MacOS
2024-09-23 20:34:13 +02:00
HarryHeres
96d3393437 Removing KeyEventHandler patch for MacOS 2024-09-23 20:31:48 +02:00
mauro-balades
14b520a498 Refactor subproject commit in l10n 2024-09-23 20:26:36 +02:00
mauro-balades
22eb216a3d Refactor ZenCustomizableUI and update keyboard shortcuts preferences 2024-09-23 20:23:08 +02:00
mauro-balades
7e35a5cfb5 Refactor ZenCustomizableUI and update keyboard shortcuts preferences 2024-09-23 19:55:48 +02:00
mauro-balades
2d573da55e Refactor ZenCustomizableUI and update keyboard shortcuts preferences 2024-09-23 18:28:45 +02:00
mauro-balades
6c77a913ff Refactor ZenCustomizableUI and update keyboard shortcuts preferences 2024-09-23 18:15:22 +02:00
mauro-balades
445b21c03d Refactor subproject commit in zen-components and update keyboard shortcuts preferences 2024-09-23 17:00:27 +02:00
mauro 🤙
9ebe42d9af Merge pull request #1615 from BrhmDev/fix/Fix-expand-on-hover-when-compact-mode-is-enabled
Make expand on hover work properly when compact mode is enabled.
2024-09-23 10:23:26 +02:00
brahim
a5587120e0 Fix expand on hover when compact mode is enabled 2024-09-23 09:54:58 +02:00
Mauro Baladés
a22ebf0731 Update version and URLs in update.xml files 2024-09-23 07:15:34 +03:00
mauro-balades
f42a635555 Refactor subproject commit in zen-components and update keyboard shortcuts preferences 2024-09-22 23:38:25 +02:00
49 changed files with 685 additions and 273 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002655">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows-generic.mar" hashFunction="sha512" hashValue="75c5b879a4398dd28482e95ebc27e2eb922e040bb7efa3d1cb68a09165c694e2b8d58a09a0e8b7360ba8f667c9273b8d6132a49840f9df8711e614bc5ee8c913" size="72325896"/>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220503">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows-generic.mar" hashFunction="sha512" hashValue="a3cb65d8286bbfe126091d426f80521869ac34b35ed2b3e408abb2beed2211caf66e14bcec4cc7608c24533691427c3bed272338cded84952a3f474945f1d422" size="72356444"/>
</update>
</updates>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002655">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows-generic.mar" hashFunction="sha512" hashValue="75c5b879a4398dd28482e95ebc27e2eb922e040bb7efa3d1cb68a09165c694e2b8d58a09a0e8b7360ba8f667c9273b8d6132a49840f9df8711e614bc5ee8c913" size="72325896"/>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220503">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows-generic.mar" hashFunction="sha512" hashValue="a3cb65d8286bbfe126091d426f80521869ac34b35ed2b3e408abb2beed2211caf66e14bcec4cc7608c24533691427c3bed272338cded84952a3f474945f1d422" size="72356444"/>
</update>
</updates>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002634">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows.mar" hashFunction="sha512" hashValue="12f748e7eec386ea4d559d2cd6163cff94aa2adf058f7d1037434235ae1b09ed4ed9e524ea85d3d2f330878ad8bccf7c578ef7c32c79a5804333f6137bb0fe00" size="72311992"/>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220342">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows.mar" hashFunction="sha512" hashValue="ca7f2506ea94095b0146820263e95f17888c06bf3eeda9728425e073c24a8f754143c3cd92b834a7583144eb2fb9a6a0618b1a961452e15a341cb5fd93d9af9d" size="72318312"/>
</update>
</updates>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002634">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows.mar" hashFunction="sha512" hashValue="12f748e7eec386ea4d559d2cd6163cff94aa2adf058f7d1037434235ae1b09ed4ed9e524ea85d3d2f330878ad8bccf7c578ef7c32c79a5804333f6137bb0fe00" size="72311992"/>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220342">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows.mar" hashFunction="sha512" hashValue="ca7f2506ea94095b0146820263e95f17888c06bf3eeda9728425e073c24a8f754143c3cd92b834a7583144eb2fb9a6a0618b1a961452e15a341cb5fd93d9af9d" size="72318312"/>
</update>
</updates>

View File

@@ -56,7 +56,7 @@ winget install --id Zen-Team.Zen-Browser
winget install --id Zen-Team.Zen-Browser.Optimized
```
####
####
### macOS
@@ -111,6 +111,11 @@ Download and bootstrap the browser
npm run init
```
Copy a language pack
```
sh scripts/update-en-US-packs.sh
```
Start building the browser
```

View File

@@ -5,6 +5,7 @@ param(
$ErrorActionPreference = "Stop"
echo "Preparing environment"
git pull --recurse-submodules
mkdir windsign-temp -ErrorAction SilentlyContinue
echo "Please UNZIP the generic and specific artifacts into windsign-temp"
@@ -93,6 +94,12 @@ function SignAndPackage($name) {
SignAndPackage specific
SignAndPackage generic
echo "All artifacts signed and packaged, ready for release!"
echo "Commiting the changes to the repository"
git add .\.github\workflows\object
git commit -m "Sign and package windows artifacts"
git push
# Cleaning up
echo "All done!"
@@ -101,3 +108,6 @@ Read-Host "Press Enter to continue"
echo "Cleaning up"
rmdir windsign-temp -Recurse -ErrorAction SilentlyContinue
echo "Opening visual studio code"
code .

2
l10n

Submodule l10n updated: 49b3961b5f...0bd8f65ca3

View File

@@ -30,6 +30,9 @@ pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
pref('browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled', true);
pref('browser.translations.newSettingsUI.enable', true);
pref('privacy.userContext.enabled', true);
pref('privacy.userContext.ui.enabled', true);
pref("browser.urlbar.trimHttps", true);
pref("browser.urlbar.untrimOnUserInteraction.featureGate", true);
@@ -96,12 +99,15 @@ pref('zen.view.sidebar-expanded.max-width', 400);
pref('zen.view.sidebar-collapsed.hide-mute-button', true);
pref('zen.keyboard.shortcuts.enabled', true);
pref('zen.keyboard.shortcuts', ""); // Empty string means default shortcuts
pref('zen.keyboard.shortcuts.disable-firefox', false);
pref('zen.keyboard.shortcuts.enabled', true, locked);
pref('zen.keyboard.shortcuts.version', 0); // Empty string means default shortcuts
pref('zen.tabs.dim-pending', true);
pref('zen.themes.updated-value-observer', false);
pref('zen.tab-unloader.enabled', true);
pref('zen.tab-unloader.timeout-minutes', 20);
pref('zen.tab-unloader.excluded-urls', "example.com,example.org");
// Pref to enable the new profiles (TODO: Check this out!)
//pref("browser.profiles.enabled", true);
@@ -113,13 +119,14 @@ pref('zen.sidebar.close-on-blur', true);
// Zen Split View
pref('zen.splitView.working', false);
pref('zen.splitView.min-resize-width', 7);
pref('zen.splitView.change-on-hover', false);
// Zen Workspaces
pref('zen.workspaces.enabled', true);
pref('zen.workspaces.hide-default-container-indicator', true);
pref('zen.workspaces.individual-pinned-tabs', true);
pref('zen.workspaces.show-icon-strip', true);
pref('zen.workspaces.icons', '["🌐", "📁", "📎", "📝", "📅", "📊"]');
pref('zen.workspaces.icons', '["🌐", "📁", "💼", "📝", "📅", "📊","🧠"]');
// Zen Watermark
pref('zen.watermark.enabled', true, sticky);
@@ -209,4 +216,4 @@ pref('media.ffmpeg.vaapi.enabled', true);
pref('media.ffmpeg.encoder.enabled', true);
pref("media.hardware-video-decoding.enabled", true);
pref("gfx.canvas.accelerated", true);
pref("gfx.canvas.accelerated", true);

View File

@@ -15,10 +15,11 @@ export var ZenCustomizableUI = new class {
{
type: this.TYPE_TOOLBAR,
defaultPlacements: [
"PanelUI-menu-button", "zen-expand-sidebar-button", "zen-profile-button"
"preferences-button", "zen-expand-sidebar-button", "zen-profile-button"
],
defaultCollapsed: null,
}
},
true
);
CustomizableUIInternal.registerArea(
"zen-sidebar-icons-wrapper",
@@ -26,7 +27,8 @@ export var ZenCustomizableUI = new class {
type: this.TYPE_TOOLBAR,
defaultPlacements: this.defaultSidebarIcons,
defaultCollapsed: null,
}
},
true
);
}
@@ -44,9 +46,9 @@ export var ZenCustomizableUI = new class {
brighttext="true"
data-l10n-id="tabs-toolbar"
customizable="true"
toolbarname="Zen Sidebar Top Buttons"
context="toolbar-context-menu"
flex="1"
skipintoolbarset="true"
customizationtarget="zen-sidebar-top-buttons-customization-target"
mode="icons">
<hbox id="zen-sidebar-top-buttons-customization-target" class="customization-target" flex="1">
@@ -70,32 +72,20 @@ export var ZenCustomizableUI = new class {
</toolbar>
`);
window.document.getElementById('navigator-toolbox').prepend(sidebarBox);
const sideBarTopButtons = window.document.getElementById('zen-sidebar-top-buttons')
.querySelector('#zen-sidebar-top-buttons-customization-target');
const newTab = window.document.getElementById('vertical-tabs-newtab-button');
newTab.classList.add('zen-sidebar-action-button');
window.CustomizableUI.registerToolbarNode(
window.document.getElementById('zen-sidebar-top-buttons')
);
const panelMenu = window.document.getElementById('PanelUI-menu-button');
panelMenu.classList.add('zen-sidebar-action-button');
panelMenu.setAttribute('cui-areatype', 'toolbar');
sideBarTopButtons.prepend(panelMenu);
const wrapper = window.document.createXULElement('toolbarbutton');
wrapper.id = 'zen-workspaces-button';
window.document.getElementById('zen-sidebar-icons-wrapper').prepend(wrapper);
for (let id of this.defaultSidebarIcons) {
const elem = window.document.getElementById(id);
if (id === 'zen-workspaces-button' || !elem) continue;
if (!elem) continue;
elem.setAttribute('removable', 'true');
}
window.CustomizableUI.registerToolbarNode(
window.document.getElementById('zen-sidebar-icons-wrapper')
);
this._moveWindowButtons(window);
}
@@ -124,4 +114,13 @@ export var ZenCustomizableUI = new class {
}
}
}
registerToolbarNodes(window) {
window.CustomizableUI.registerToolbarNode(
window.document.getElementById('zen-sidebar-top-buttons')
);
window.CustomizableUI.registerToolbarNode(
window.document.getElementById('zen-sidebar-icons-wrapper')
);
}
};

View File

@@ -1,12 +1,6 @@
{
const lazy = {};
XPCOMUtils.defineLazyPreferenceGetter(
lazy,
"sidebarHeightThrottle",
"zen.view.sidebar-height-throttle",
500
);
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'sidebarHeightThrottle', 'zen.view.sidebar-height-throttle', 500);
var ZenStartup = {
init() {
this.logHeader();
@@ -14,7 +8,7 @@
window.SessionStore.promiseInitialized.then(async () => {
this._changeSidebarLocation();
this._zenInitBrowserLayout();
this._focusSearchBar();
this._initSearchBar();
});
},
@@ -45,7 +39,7 @@
gZenUIManager.init();
gZenVerticalTabsManager.init();
gZenCompactModeManager.init();
gZenKeyboardShortcuts.init();
gZenKeyboardShortcutsManager.init();
function throttle(f, delay) {
let timer = 0;
@@ -55,7 +49,9 @@
};
}
new ResizeObserver(throttle(this._updateTabsToolbar.bind(this), lazy.sidebarHeightThrottle)).observe(document.getElementById('tabbrowser-tabs'));
new ResizeObserver(throttle(this._updateTabsToolbar.bind(this), lazy.sidebarHeightThrottle)).observe(
document.getElementById('tabbrowser-tabs')
);
} catch (e) {
console.error('ZenThemeModifier: Error initializing browser layout', e);
}
@@ -129,8 +125,13 @@
toolbox.insertAdjacentElement('afterend', splitter);
},
_focusSearchBar() {
_initSearchBar() {
// Only focus the url bar
gURLBar.focus();
gURLBar._initCopyCutController();
gURLBar._initPasteAndGo();
gURLBar._initStripOnShare();
},
logHeader() {
@@ -150,4 +151,4 @@
};
ZenStartup.init();
}
}

View File

@@ -1,16 +1,25 @@
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
index bee5309c04775adff8652bfe6c54b2d466e821ac..e9741628dcc9eda3500f69441bae293548179e71 100644
index bee5309c04775adff8652bfe6c54b2d466e821ac..cfeaf7cf2e98c35e76bdd5451f90b004a04d4474 100644
--- a/browser/base/content/browser-init.js
+++ b/browser/base/content/browser-init.js
@@ -143,6 +143,7 @@ var gBrowserInit = {
@@ -143,13 +143,15 @@ var gBrowserInit = {
gNavToolbox.palette = document.getElementById(
"BrowserToolbarPalette"
).content;
+ ZenCustomizableUI.init(window);
for (let area of CustomizableUI.areas) {
let type = CustomizableUI.getAreaType(area);
if (type == CustomizableUI.TYPE_TOOLBAR) {
@@ -239,6 +240,10 @@ var gBrowserInit = {
- if (type == CustomizableUI.TYPE_TOOLBAR) {
+ if (type == CustomizableUI.TYPE_TOOLBAR && !area.startsWith("zen-")) {
let node = document.getElementById(area);
CustomizableUI.registerToolbarNode(node);
}
}
+ ZenCustomizableUI.registerToolbarNodes(window);
BrowserSearch.initPlaceHolder();
// Hack to ensure that the various initial pages favicon is loaded
@@ -239,6 +241,10 @@ var gBrowserInit = {
gPrivateBrowsingUI.init();
BrowserSearch.init();
BrowserPageActions.init();

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..e1d1cf3bb925b8efb1411d1dc77a56f086858b5a 100644
index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..bc22e55a66686fbae95047686f845f71a0c3aae9 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -32,6 +32,7 @@ ChromeUtils.defineESModuleGetters(this, {
@@ -26,17 +26,18 @@ index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..e1d1cf3bb925b8efb1411d1dc77a56f0
customElements.setElementCreationCallback("screenshots-buttons", () => {
Services.scriptloader.loadSubScript(
"chrome://browser/content/screenshots/screenshots-buttons.js",
@@ -3435,6 +3445,9 @@ var XULBrowserWindow = {
@@ -3435,6 +3445,10 @@ var XULBrowserWindow = {
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
+ gZenViewSplitter.onLocationChange(gBrowser.selectedBrowser);
+ ZenWorkspaces.onLocationChange(gBrowser.selectedBrowser);
+ gZenTabUnloader.onLocationChange(gBrowser.selectedBrowser);
+
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
if (!gMultiProcessBrowser) {
@@ -4769,7 +4782,7 @@ function setToolbarVisibility(
@@ -4769,7 +4783,7 @@ function setToolbarVisibility(
);
}
@@ -45,7 +46,7 @@ index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..e1d1cf3bb925b8efb1411d1dc77a56f0
switch (isVisible) {
case true:
case "always":
@@ -7609,6 +7622,12 @@ var gDialogBox = {
@@ -7609,6 +7623,12 @@ var gDialogBox = {
parentElement.showModal();
this._didOpenHTMLDialog = true;

View File

@@ -31,6 +31,7 @@ window.addEventListener("DOMContentLoaded", async () => {
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCompactMode.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenSidebarManager.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenTabUnloader.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspaces.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenViewSplitter.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenProfileDialogUI.mjs");

View File

@@ -13,6 +13,7 @@
content/browser/zen-components/ZenKeyboardShortcuts.mjs (content/zen-components/src/ZenKeyboardShortcuts.mjs)
content/browser/zen-components/ZenThemeBuilder.mjs (content/zen-components/src/ZenThemeBuilder.mjs)
content/browser/zen-components/ZenThemesImporter.mjs (content/zen-components/src/ZenThemesImporter.mjs)
content/browser/zen-components/ZenTabUnloader.mjs (content/zen-components/src/ZenTabUnloader.mjs)
content/browser/zen-styles/zen-theme.css (content/zen-styles/zen-theme.css)
content/browser/zen-styles/zen-buttons.css (content/zen-styles/zen-buttons.css)

View File

@@ -4,7 +4,7 @@
class="browser-toolbar customization-target zen-dont-hide-on-fullscreen"
data-l10n-id="tabs-toolbar"
customizable="true"
toolbarname="Zen Sidebar Icons"
skipintoolbarset="true"
context="toolbar-context-menu"
mode="icons">
<toolbarbutton removeable="true" class="toolbarbutton-1 zen-sidebar-action-button" id="zen-sidepanel-button" data-l10n-id="sidebar-zen-sidepanel" onclick="gZenBrowserManagerSidebar.toggle();"></toolbarbutton>

View File

@@ -1,6 +1,6 @@
<hbox id="zen-sidebar-web-panel-wrapper">
<box id="zen-sidebar-web-panel" class="chromeclass-extrachrome" hidden="true" persist="pinned style hidden">
<toolbar mode="icons" flex="1" id="zen-sidebar-web-header">
<toolbar mode="icons" flex="1" id="zen-sidebar-web-header" fullscreentoolbar="true">
<hbox>
<toolbarbutton id="zen-sidebar-web-panel-back" class="toolbarbutton-1 chromeclass-toolbar-additional" oncommand="gZenBrowserManagerSidebar.back();"/>
<toolbarbutton id="zen-sidebar-web-panel-forward" class="toolbarbutton-1 chromeclass-toolbar-additional" oncommand="gZenBrowserManagerSidebar.forward();"/>
@@ -20,13 +20,15 @@
<html:p data-l10n-id="zen-sidebar-introduction-description"/>
</vbox>
</vbox>
<toolbar mode="icons" flex="1" id="zen-sidebar-panels-wrapper" class="zen-dont-hide-on-fullscreen">
<toolbar mode="icons" flex="1" id="zen-sidebar-panels-sites" class="zen-dont-hide-on-fullscreen">
<toolbar mode="icons" flex="1" id="zen-sidebar-panels-wrapper" fullscreentoolbar="true">
<toolbar mode="icons" flex="1" id="zen-sidebar-panels-sites" fullscreentoolbar="true">
</toolbar>
<toolbarbutton id="zen-sidebar-add-panel-button" class="zen-sidebar-panel-button toolbarbutton-1 chromeclass-toolbar-additional" onclick="gZenBrowserManagerSidebar._openAddPanelDialog();"/>
</toolbar>
<html:span id="zen-sidebar-web-panel-splitter"></html:span>
<html:span id="zen-sidebar-web-panel-hsplitter"></html:span>
<html:span class="zen-sidebar-web-panel-splitter" side="left"></html:span>
<html:span class="zen-sidebar-web-panel-splitter" side="right"></html:span>
<html:span class="zen-sidebar-web-panel-splitter" orient="horizontal" side="top"></html:span>
<html:span class="zen-sidebar-web-panel-splitter" orient="horizontal" side="bottom"></html:span>
</box>
</hbox>

View File

@@ -5,8 +5,6 @@
transform: translate3d(0, 0, 0);
position: relative;
overflow: hidden;
--uc-tweak-rounded-corners-shadow-color: var(--zen-colors-border);
--uc-tweak-rounded-corners-shadow:

View File

@@ -33,10 +33,6 @@
width: 100%;
}
:root:not([inDOMFullscreen='true']) #appcontent {
overflow: hidden;
}
:root:not([inDOMFullscreen='true']) #appcontent,
#sidebar-box {
/** Sidebar is already hidden in full screen mode */
@@ -52,6 +48,10 @@
flex-direction: row;
}
:root:not([inDOMFullscreen='true']) #tabbrowser-tabbox {
padding: 1px; /* To allow the web view's shadow to be visible */
.titlebar-buttonbox-container {
height: 100%;
}
:root:not([inDOMFullscreen='true']) #tabbrowser-tabbox {
padding: 2px; /* To allow the web view's shadow to be visible */
}

View File

@@ -33,8 +33,9 @@
}
#navigator-toolbox {
--zen-toolbox-max-width: 54px !important;
position: absolute;
height: 98%;
height: calc(98% - var(--zen-element-separation));
z-index: 9;
background: var(--zen-themed-toolbar-bg) !important;
box-shadow: 0 0 2px 2px rgba(0,0,0,.1);
@@ -45,11 +46,9 @@
padding: var(--zen-toolbox-padding) !important;
transition: all 0.2s ease-in-out;
right: calc(100% - var(--zen-element-separation) + 1px);
top: 50%;
top: 1%;
opacity: 0;
transform: translate3d(0, -50%, 0);
#browser:has(#navigator-toolbox[zen-right-side='true']) & {
border-left-width: 1px;
border-right-width: 0;
@@ -77,9 +76,9 @@
#navigator-toolbox:has(*[open='true']:not(tab):not(#zen-sidepanel-button)) {
opacity: 1;
transform: translate3d(calc(100% - var(--zen-element-separation)), -50%, 0);
transform: translateX(calc(100% - var(--zen-element-separation)));
#browser:has(#navigator-toolbox[zen-right-side='true']) & {
transform: translate3d(calc(-100% + var(--zen-element-separation)), -50%, 0);
transform: translateX(calc(-100% + var(--zen-element-separation)));
}
}
}
@@ -109,6 +108,13 @@
transition: all 0.2s ease-in-out;
width: 100%;
opacity: 0;
:root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) & {
border-top-left-radius: env(-moz-gtk-csd-titlebar-radius);
border-top-right-radius: env(-moz-gtk-csd-titlebar-radius);
border-left-width: 0;
border-right-width: 0;
}
}
#zen-appcontent-navbar-container:hover,

View File

@@ -70,7 +70,7 @@
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned='true']) {
position: absolute;
z-index: 1;
width: -moz-available;
width: calc(100% - var(--zen-sidebar-web-panel-spacing) * 3);
margin: var(--zen-sidebar-web-panel-spacing);
/* Why times 3?
* + 1 for the top margin, making the element overflow the view.
@@ -83,7 +83,8 @@
#zen-sidebar-web-panel {
border-radius: var(--zen-panel-radius);
overflow: hidden;
box-shadow: 0 0 0 1px var(--zen-colors-border);
box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1);
border: 1px solid var(--zen-colors-border);
background: var(--zen-colors-tertiary);
opacity: 0;
animation-delay: 0.1s;
@@ -101,10 +102,10 @@
height: unset !important;
}
#zen-sidebar-web-panel-splitter {
.zen-sidebar-web-panel-splitter {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 100%;
width: 4px;
background: transparent;
@@ -112,21 +113,26 @@
cursor: ew-resize;
}
#zen-sidebar-web-panel-hsplitter {
position: absolute;
bottom: -2px;
left: 0;
.zen-sidebar-web-panel-splitter[side='right'] {
left: initial;
right: 0;
}
.zen-sidebar-web-panel-splitter[orient='horizontal'] {
width: 100%;
height: 7px;
background: transparent;
border: none;
cursor: ns-resize;
}
#zen-sidebar-web-panel[hidden='true'] #zen-sidebar-web-panel-hsplitter,
#zen-sidebar-web-panel-wrapper[hidden='true'] + #zen-sidebar-web-panel-splitter,
#zen-sidebar-web-panel-wrapper[hidden='true'] + #zen-sidebar-web-panel-hsplitter,
#zen-sidebar-web-panel:not([pinned='true']) #zen-sidebar-web-panel-hsplitter {
.zen-sidebar-web-panel-splitter[side='bottom'] {
top: initial;
bottom: -2px;
}
#zen-sidebar-web-panel[hidden='true'] .zen-sidebar-web-panel-splitter,
#zen-sidebar-web-panel-wrapper[hidden='true'] + .zen-sidebar-web-panel-splitter,
#zen-sidebar-web-panel:not([pinned='true']) .zen-sidebar-web-panel-splitter[orient='horizontal'],
#zen-sidebar-web-panel:not([pinned='true']) .zen-sidebar-web-panel-splitter[side='left'] {
display: none;
margin: 0;
}

View File

@@ -13,6 +13,18 @@ toolbar {
display: none !important;
}
& stack {
width: calc(2 * var(--toolbarbutton-inner-padding) + 16px) !important;
height: calc(2 * var(--toolbarbutton-inner-padding) + 16px) !important;
display: flex;
justify-content: center;
align-items: center;
& > image {
width: 0;
}
}
& #zen-profile-button-icon {
width: 16px;
height: 16px;

View File

@@ -18,7 +18,7 @@
}
#browser {
--zen-toolbox-padding: 5px;
--zen-toolbox-padding: 4px;
}
#navigator-toolbox {
@@ -31,10 +31,11 @@
min-width: var(--zen-toolbox-min-width);
margin-top: 0 !important; /* Fix full screen mode */
padding: var(--zen-toolbox-padding);
padding-top: var(--zen-toolbox-top-align);
padding-bottom: var(--zen-element-separation);
order: 0 !important;
display: flex;
}
@@ -162,6 +163,10 @@
#navigator-toolbox[zen-expanded='true']:not([zen-user-hover='true'])) {
--zen-toolbox-min-width: fit-content;
& {
padding: var(--zen-toolbox-padding);
}
& #titlebar {
min-width: 150px;
}
@@ -275,9 +280,9 @@
#navigator-toolbox[zen-user-hover='true'][has-popup-menu],
#navigator-toolbox[zen-user-hover='true']:has(*[open='true']:not(tab):not(#zen-sidepanel-button)),
#navigator-toolbox[zen-expanded='true']:not([zen-user-hover='true']))) {
--zen-toolbox-max-width: 51px;
--zen-toolbox-max-width: 45px;
--zen-toolbox-padding: 8px;
max-width: var(--zen-toolbox-max-width) !important;
min-width: calc(var(--zen-toolbox-max-width) + var(--zen-toolbox-padding) / 2 + 2px) !important;
& #vertical-tabs-newtab-button {
padding: 0 !important;
@@ -439,7 +444,7 @@
}
/* Mark: Expand on hover */
@media (-moz-bool-pref: 'zen.view.sidebar-expanded.on-hover') and (not (-moz-bool-pref: 'zen.view.compact')) {
@media (-moz-bool-pref: 'zen.view.sidebar-expanded.on-hover') and (not ((-moz-bool-pref: 'zen.view.compact') and (-moz-bool-pref: 'zen.view.compact.hide-tabbar'))) {
#zen-sidebar-splitter {
display: none !important;
}
@@ -460,6 +465,11 @@
height: 100%;
border-top-right-radius: var(--zen-border-radius);
width: var(--zen-toolbox-max-width);
& .tabbrowser-tab {
transition: 0s !important;
}
}
#navigator-toolbox[zen-has-hover],
@@ -469,10 +479,9 @@
#navigator-toolbox[has-popup-menu],
#navigator-toolbox:has(.tabbrowser-tab:active),
#navigator-toolbox:has(*[open='true']:not(tab):not(#zen-sidepanel-button)) {
--zen-navigation-toolbar-min-width: 55.5px !important; /* + the width of the splitter */
max-width: var(--zen-navigation-toolbar-min-width) !important;
min-width: var(--zen-navigation-toolbar-min-width) !important;
--zen-toolbox-max-width: 41px;
max-width: var(--zen-toolbox-max-width) !important;
min-width: calc(var(--zen-toolbox-max-width) + var(--zen-toolbox-padding) / 2 + 3px) !important;
padding: 0 !important;
& #TabsToolbar {
@@ -484,8 +493,69 @@
position: absolute;
padding: var(--zen-toolbox-padding);
transition: 0 !important;
animation: zen-vtabs-animation 0.3s ease-in-out;
/*animation: zen-vtabs-animation 0.3s ease-in-out;*/
-moz-window-dragging: no-drag;
overflow: hidden;
transition: width .2s !important;
& .tab-throbber,
& .tab-icon-pending,
& .tab-icon-image,
& .tab-sharing-icon-overlay,
& .tab-icon-overlay {
transition: 0.1s !important;
}
}
/* Make pinned tabs stay in a single line */
#vertical-pinned-tabs-container {
display: flex;
flex-direction: column;
gap: 0 !important;
margin-bottom: 8px;
position: relative;
&::after {
bottom: -4px;
content: '';
display: block;
height: 1px;
background: color-mix(in srgb, var(--zen-colors-border) 80%, transparent 20%);
width: 99%;
left: 50%;
transform: translateX(-50%);
position: absolute;
}
& .tabbrowser-tab {
& .tab-label-container {
display: flex;
}
& .tab-throbber,
& .tab-icon-pending,
& .tab-icon-image,
& .tab-sharing-icon-overlay,
& .tab-icon-overlay {
margin-inline-end: var(--toolbarbutton-inner-padding) !important;
}
&:hover .tab-close-button {
display: block !important;
}
& .tab-background {
box-shadow: none;
background: transparent !important;
}
&:hover .tab-background {
background-color: var(--tab-hover-background-color) !important;
}
}
}
&[zen-right-side='true'] #TabsToolbar {
@@ -513,11 +583,11 @@
/* Mark: Move sidebar to the right */
#browser:has(#navigator-toolbox[zen-right-side='true']) {
& #navigator-toolbox {
order: 3;
order: 3 !important;
}
& #zen-sidebar-splitter {
order: 2;
order: 2 !important;
}
}
@@ -561,7 +631,7 @@
align-items: center;
#nav-bar:has(&) & {
padding-inline-start: calc(var(--zen-toolbox-padding) + var(--toolbarbutton-outer-padding));
padding-inline-start: var(--toolbarbutton-outer-padding);
}
#browser:has(#navigator-toolbox[zen-right-side='true']) & {

View File

@@ -68,6 +68,8 @@
--button-primary-active-bgcolor: var(--in-content-primary-button-background-active) !important;
--button-primary-color: var(--in-content-primary-button-text-color) !important;
--color-accent-primary-hover: var(--zen-primary-color) !important;
--in-content-page-background: var(--zen-colors-tertiary) !important;
--zen-in-content-dialog-background: var(--zen-colors-tertiary);
@@ -112,7 +114,7 @@
--input-bgcolor: var(--zen-colors-tertiary) !important;
--input-border-color: var(--zen-input-border-color) !important;
--zen-themed-toolbar-bg: var(--zen-colors-tertiary);
--zen-themed-toolbar-bg: light-dark(#eeeded, var(--zen-colors-tertiary)) !important;
--toolbar-field-background-color: var(--zen-colors-input-bg) !important;
--arrowpanel-background: var(--zen-dialog-background) !important;
@@ -172,7 +174,7 @@
@media not (-moz-bool-pref: 'zen.theme.toolbar-themed') {
:root {
--toolbar-bgcolor: light-dark(white, #1b1b1b) !important;
--toolbar-bgcolor: light-dark(#E6E6E6, #1b1b1b) !important;
--zen-themed-toolbar-bg: var(--toolbar-bgcolor);
}
}

View File

@@ -2,7 +2,6 @@
#urlbar-container {
padding-block: 0 !important;
padding-bottom: 2px !important;
}
#urlbar {
@@ -283,4 +282,5 @@ button.popup-notification-dropmarker {
#PersonalToolbar:not([collapsed="true"]) {
padding-bottom: 6px;
padding-left: 0 !important;
}

View File

@@ -6,9 +6,12 @@
position: relative;
&:not([as-button='true']) {
border-radius: var(--zen-button-border-radius);
background: color-mix(in srgb, var(--zen-colors-border) 50%, transparent 50%);
--zen-workspaces-strip-background-color: color-mix(in srgb, var(--zen-colors-border) 50%, transparent 50%);
--toolbarbutton-hover-background: var(--toolbarbutton-hover-background) !important;
border-radius: var(--zen-button-border-radius) !important;
background: var(--zen-workspaces-strip-background-color) !important;
padding: 5px;
appearance: unset !important;
height: fit-content;
gap: 3px;

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
index 289c3df7dcd6fa6b35681ce61c1e920b6a2651d7..aa7d86770cce41a720e92f63392a763b16381f55 100644
index 289c3df7dcd6fa6b35681ce61c1e920b6a2651d7..a31dc07c8b756e09f43cd5f81bad8d4a3c5f7fce 100644
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
@@ -19,16 +19,7 @@ index 289c3df7dcd6fa6b35681ce61c1e920b6a2651d7..aa7d86770cce41a720e92f63392a763b
const kSpecialWidgetPfx = "customizableui-special-";
@@ -222,6 +223,8 @@ var CustomizableUIInternal = {
this._updateForNewProtonVersion();
this._markObsoleteBuiltinButtonsSeen();
+ lazy.ZenCustomizableUI.startup(this);
+
this.registerArea(
CustomizableUI.AREA_FIXED_OVERFLOW_PANEL,
{
@@ -253,10 +256,9 @@ var CustomizableUIInternal = {
@@ -253,13 +254,14 @@ var CustomizableUIInternal = {
"spring",
"urlbar-container",
"spring",
@@ -40,6 +31,11 @@ index 289c3df7dcd6fa6b35681ce61c1e920b6a2651d7..aa7d86770cce41a720e92f63392a763b
lazy.resetPBMToolbarButtonEnabled ? "reset-pbm-toolbar-button" : null,
].filter(name => name);
+ lazy.ZenCustomizableUI.startup(this);
+
this.registerArea(
CustomizableUI.AREA_NAVBAR,
{
@@ -288,10 +290,10 @@ var CustomizableUIInternal = {
{
type: CustomizableUI.TYPE_TOOLBAR,
@@ -62,7 +58,17 @@ index 289c3df7dcd6fa6b35681ce61c1e920b6a2651d7..aa7d86770cce41a720e92f63392a763b
]);
if (AppConstants.platform != "macosx") {
toolbars.add(CustomizableUI.AREA_MENUBAR);
@@ -3289,6 +3292,9 @@ var CustomizableUIInternal = {
@@ -1033,6 +1036,9 @@ var CustomizableUIInternal = {
placements = gPlacements.get(area);
}
+ // remove "zen-sidebar-top-buttons" from the placements
+ placements = placements.filter(p => p != "zen-sidebar-top-buttons");
+
// For toolbars that need it, mark as dirty.
let defaultPlacements = areaProperties.get("defaultPlacements");
if (
@@ -3289,6 +3295,9 @@ var CustomizableUIInternal = {
gSeenWidgets.add(widgetId);
}
}

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
index 7e21bab426b6eb52fe84876d817fddbdb1a35ffc..56b42e2d025e4a47ea0983cf33ae69ffafa0d576 100644
index 7e21bab426b6eb52fe84876d817fddbdb1a35ffc..39637cc8aea988c77e5a6c66a85ec66acd4ca4bc 100644
--- a/browser/components/preferences/preferences.js
+++ b/browser/components/preferences/preferences.js
@@ -196,6 +196,10 @@ function init_all() {
@@ -7,7 +7,7 @@ index 7e21bab426b6eb52fe84876d817fddbdb1a35ffc..56b42e2d025e4a47ea0983cf33ae69ff
Preferences.queueUpdateOfAllElements();
Services.telemetry.setEventRecordingEnabled("aboutpreferences", true);
+ register_module("paneZenLooks", gZenLooksAndFeel);
+ register_module("paneZenWorkspaces", gZenWorkspacesSettings);
+ register_module("paneZenTabManagement", gZenWorkspacesSettings);
+ register_module("paneZenCKS", gZenCKSSettings);
+ register_module("paneZenMarketplace", gZenMarketplaceManager);

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
index 3affb19d1a243da4a5782c9a4a5588d165b4119f..837f078ff1f3a65a40877c1380c6d050a8415bab 100644
index 53bdc9c912a6cd0c787dbcf41f2a82b7169d5aa7..e47c4b36b6e469b0cc8b95bde0508dc6cb0b49ae 100644
--- a/browser/components/preferences/preferences.xhtml
+++ b/browser/components/preferences/preferences.xhtml
@@ -43,6 +43,8 @@
@@ -39,15 +39,15 @@ index 3affb19d1a243da4a5782c9a4a5588d165b4119f..837f078ff1f3a65a40877c1380c6d050
+ <label class="category-name" flex="1" data-l10n-id="pane-zen-looks-title"></label>
+ </richlistitem>
+
+ <richlistitem id="category-zen-workspaces"
+ <richlistitem id="category-zen-tabs-management"
+ class="category"
+ value="paneZenWorkspaces"
+ value="paneZenTabManagement"
+ helpTopic="prefs-main"
+ data-l10n-id="category-zen-workspaces"
+ data-l10n-attrs="tooltiptext"
+ align="center">
+ <image class="category-icon"/>
+ <label class="category-name" flex="1" data-l10n-id="pane-zen-workspaces-title"></label>
+ <label class="category-name" flex="1" data-l10n-id="pane-zen-tabs-title"></label>
+ </richlistitem>
+
+ <richlistitem id="category-zen-CKS"
@@ -95,7 +95,7 @@ index 3affb19d1a243da4a5782c9a4a5588d165b4119f..837f078ff1f3a65a40877c1380c6d050
#include moreFromMozilla.inc.xhtml
+#include zenLooksAndFeel.inc.xhtml
+#include zenKeyboardShortcuts.inc.xhtml
+#include zenWorkspaces.inc.xhtml
+#include zenTabsManagement.inc.xhtml
+#include zenMarketplace.inc.xhtml
</vbox>
</vbox>

View File

@@ -1,7 +1,6 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
var gZenMarketplaceManager = {
init() {
const checkForUpdates = document.getElementById('zenThemeMarketplaceCheckForUpdates');
@@ -186,6 +185,7 @@ var gZenMarketplaceManager = {
.closest('.zenThemeMarketplaceItem')
.querySelector('.zenThemeMarketplaceItemUninstallButton')
.getAttribute('zen-theme-id');
event.target.setAttribute('disabled', true);
if (!event.target.hasAttribute('pressed')) {
await this.disableTheme(themeId);
@@ -204,6 +204,10 @@ var gZenMarketplaceManager = {
document.getElementById(`zenThemeMarketplaceItemConfigureButton-${sanitizedName}`).removeAttribute('hidden');
}
}
setTimeout(() => {
// We use a timeout to make sure the theme list has been updated before re-enabling the button.
event.target.removeAttribute('disabled');
}, 400);
});
fragment.querySelector('.zenThemeMarketplaceItemTitle').textContent = themeName;
@@ -631,150 +635,260 @@ var gZenWorkspacesSettings = {
},
};
const ZEN_CKS_CLASS_BASE = 'zenCKSOption';
const ZEN_CKS_INPUT_FIELD_CLASS = `${ZEN_CKS_CLASS_BASE}-input`;
const ZEN_CKS_LABEL_CLASS = `${ZEN_CKS_CLASS_BASE}-label`;
const ZEN_CKS_WRAPPER_ID = `${ZEN_CKS_CLASS_BASE}-wrapper`;
const ZEN_CKS_GROUP_PREFIX = `${ZEN_CKS_CLASS_BASE}-group`;
const KEYBIND_ATTRIBUTE_KEY = 'key';
var zenMissingKeyboardShortcutL10n = {
key_quickRestart: "zen-key-quick-restart",
key_delete: "zen-key-delete",
goBackKb: "zen-key-go-back",
goForwardKb: "zen-key-go-forward",
key_enterFullScreen: "zen-key-enter-full-screen",
key_exitFullScreen: "zen-key-exit-full-screen",
key_aboutProcesses: "zen-key-about-processes",
key_stop: "zen-key-stop",
key_sanitize: "zen-key-sanitize",
key_wrCaptureCmd: "zen-key-wr-capture-cmd",
key_wrToggleCaptureSequenceCmd: "zen-key-wr-toggle-capture-sequence-cmd",
key_undoCloseWindow: "zen-key-undo-close-window",
key_selectTab1: "zen-key-select-tab-1",
key_selectTab2: "zen-key-select-tab-2",
key_selectTab3: "zen-key-select-tab-3",
key_selectTab4: "zen-key-select-tab-4",
key_selectTab5: "zen-key-select-tab-5",
key_selectTab6: "zen-key-select-tab-6",
key_selectTab7: "zen-key-select-tab-7",
key_selectTab8: "zen-key-select-tab-8",
key_selectLastTab: "zen-key-select-tab-last",
key_showAllTabs: "zen-key-show-all-tabs",
key_gotoHistory: "zen-key-goto-history",
goHome: "zen-key-go-home",
key_redo: "zen-key-redo",
}
var gZenCKSSettings = {
init() {
this._currentAction = null;
async init() {
await this._initializeCKS();
if (this.__hasInitialized) return;
this.__hasInitialized = true;
this._currentActionID = null;
this._initializeEvents();
this._initializeCKS();
this._addPrefObservers();
},
_initializeEvents() {
const resetAllListener = this.resetAllShortcuts.bind(this);
const handleKeyDown = this._handleKeyDown.bind(this);
window.addEventListener('keydown', handleKeyDown);
const button = document.getElementById('zenCKSResetButton');
button.addEventListener('click', resetAllListener);
window.addEventListener('unload', () => {
Services.prefs.removeObserver('zen.keyboard.shortcuts.disable-firefox', this);
window.removeEventListener('keydown', handleKeyDown);
button.removeEventListener('click', resetAllListener);
});
},
_addPrefObservers() {
Services.prefs.addObserver('zen.keyboard.shortcuts.disable-firefox', this);
},
observe(subject, topic, data) {
this.onDisableFirefoxShortcutsChange();
},
async onDisableFirefoxShortcutsChange(event) {
let checked = Services.prefs.getBoolPref('zen.keyboard.shortcuts.disable-firefox');
if (checked) return;
async resetAllShortcuts() {
let buttonIndex = await confirmRestartPrompt(true, 1, true, false);
if (buttonIndex == CONFIRM_RESTART_PROMPT_RESTART_NOW) {
await gZenKeyboardShortcutsManager.resetAllShortcuts();
Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart);
return;
}
},
_initializeCKS() {
let wrapepr = document.getElementById('zenCKSOptions-wrapper');
async _initializeCKS() {
let wrapper = document.getElementById(ZEN_CKS_WRAPPER_ID);
wrapper.innerHTML = '';
// Create the groups first.
for (let key in kZKSActions) {
const data = kZKSActions[key];
const group = data[2];
if (!wrapepr.querySelector(`[data-group="${group}"]`)) {
let shortcuts = await gZenKeyboardShortcutsManager.getModifiableShortcuts();
if (!shortcuts) {
throw Error('No shortcuts defined!');
}
// Generate section per each group
for (let group of VALID_SHORTCUT_GROUPS) {
let groupClass = `${ZEN_CKS_GROUP_PREFIX}-${group}`;
if (!wrapper.querySelector(`[data-group="${groupClass}"]`)) {
let groupElem = document.createElement('h2');
groupElem.setAttribute('data-group', group);
document.l10n.setAttributes(groupElem, `zen-cks-group-${group}`);
wrapepr.appendChild(groupElem);
groupElem.setAttribute('data-group', groupClass);
document.l10n.setAttributes(groupElem, groupClass);
wrapper.appendChild(groupElem);
}
}
const keys = Object.keys(kZKSActions);
for (let i = keys.length - 1; i >= 0; i--) {
const key = keys[i];
const data = kZKSActions[key];
const l10nId = data[1];
const group = data[2];
for (let shortcut of shortcuts) {
const keyID = shortcut.getID();
const action = shortcut.getAction();
const l10nID = shortcut.getL10NID();
const group = shortcut.getGroup();
const keyInString = shortcut.toUserString();
const labelValue = zenMissingKeyboardShortcutL10n[keyID] ?? l10nID;
let fragment = window.MozXULElement.parseXULToFragment(`
<hbox class="zenCKSOption">
<label class="zenCKSOption-label" for="zenCKSOption-${key}"></label>
<html:input readonly="1" class="zenCKSOption-input" id="zenCKSOption-${key}" />
<hbox class="${ZEN_CKS_CLASS_BASE}">
<label class="${ZEN_CKS_LABEL_CLASS}" for="${ZEN_CKS_CLASS_BASE}-${keyID}"></label>
<vbox flex="1">
<html:input readonly="1" class="${ZEN_CKS_INPUT_FIELD_CLASS}" id="${ZEN_CKS_INPUT_FIELD_CLASS}-${keyID}" />
</vbox>
</hbox>
`);
document.l10n.setAttributes(fragment.querySelector('.zenCKSOption-label'), l10nId);
let input = fragment.querySelector('.zenCKSOption-input');
let shortcut = gZenKeyboardShortcuts.getShortcut(key);
if (shortcut) {
input.value = gZenKeyboardShortcuts.shortCutToString(shortcut);
const label = fragment.querySelector(`.${ZEN_CKS_LABEL_CLASS}`);
if (!labelValue) {
label.textContent = action; // Just in case
} else {
this._resetCKS(input, key);
document.l10n.setAttributes(label, labelValue);
}
input.setAttribute('data-key', key);
let input = fragment.querySelector(`.${ZEN_CKS_INPUT_FIELD_CLASS}`);
if (keyInString && !shortcut.isEmpty()) {
input.value = keyInString;
} else {
this._resetShortcut(input);
}
input.setAttribute(KEYBIND_ATTRIBUTE_KEY, keyID);
input.setAttribute('data-group', group);
input.setAttribute('data-id', keyID);
input.addEventListener('focus', (event) => {
const key = event.target.getAttribute('data-key');
this._currentAction = key;
event.target.classList.add('zenCKSOption-input-editing');
const value = event.target.getAttribute(KEYBIND_ATTRIBUTE_KEY);
this._currentActionID = event.target.getAttribute('data-id');
event.target.classList.add(`${ZEN_CKS_INPUT_FIELD_CLASS}-editing`);
this._hasSafed = true;
});
input.addEventListener('editDone', (event) => {
const target = event.target;
target.classList.add(`${ZEN_CKS_INPUT_FIELD_CLASS}-editing`);
});
input.addEventListener('blur', (event) => {
this._currentAction = null;
event.target.classList.remove('zenCKSOption-input-editing');
const target = event.target;
target.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-editing`);
if (!this._hasSafed) {
target.classList.add(`${ZEN_CKS_INPUT_FIELD_CLASS}-unsafed`);
if (!target.nextElementSibling) {
target.after(window.MozXULElement.parseXULToFragment(`
<label class="${ZEN_CKS_CLASS_BASE}-unsafed" data-l10n-id="zen-key-unsafed"></label>
`));
target.value = 'Not set';
}
} else {
target.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-unsafed`);
const sibling = target.nextElementSibling;
if (sibling && sibling.classList.contains(`${ZEN_CKS_CLASS_BASE}-unsafed`)) {
sibling.remove();
}
}
});
const groupElem = wrapepr.querySelector(`[data-group="${group}"]`);
const groupElem = wrapper.querySelector(`[data-group="${ZEN_CKS_GROUP_PREFIX}-${group}"]`);
groupElem.after(fragment);
}
},
_resetCKS(input, key) {
async _resetShortcut(input) {
input.value = 'Not set';
input.classList.add('zenCKSOption-input-not-set');
input.classList.remove('zenCKSOption-input-invalid');
gZenKeyboardShortcuts.setShortcut(key, null);
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-invalid`);
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-editing`);
input.classList.add(`${ZEN_CKS_INPUT_FIELD_CLASS}-not-set`);
if (this._currentActionID) {
this._editDone();
await gZenKeyboardShortcutsManager.setShortcut(this._currentActionID, null, null);
}
},
_initializeEvents() {
window.addEventListener('keydown', this._handleKeyDown.bind(this));
_editDone(shortcut, modifiers) {
// Check if we have a valid key
if (!shortcut || !modifiers) {
return;
}
gZenKeyboardShortcutsManager.setShortcut(this._currentActionID, shortcut, modifiers);
this._currentActionID = null;
},
_handleKeyDown(event) {
if (!this._currentAction) {
//TODO Check for duplicates
async _handleKeyDown(event) {
if (!this._currentActionID || document.hidden) {
return;
}
let input = document.querySelector(`.zenCKSOption-input[data-key="${this._currentAction}"]`);
let shortcut = {
ctrl: event.ctrlKey,
alt: event.altKey,
shift: event.shiftKey,
meta: event.metaKey,
};
const shortcutWithoutModifiers = !shortcut.ctrl && !shortcut.alt && !shortcut.shift && !shortcut.meta;
if (event.key === 'Tab' && shortcutWithoutModifiers) {
return;
} else if (event.key === 'Escape' && shortcutWithoutModifiers) {
this._currentAction = null;
input.blur();
return;
} else if (event.key === 'Backspace' && shortcutWithoutModifiers) {
this._resetCKS(input, this._currentAction);
return;
}
if (!shortcut.ctrl && !shortcut.alt && !shortcut.shift && !shortcut.meta) {
this._resetCKS(input, this._currentAction);
return; // No modifiers, ignore.
}
if (!['Control', 'Alt', 'Meta', 'Shift'].includes(event.key)) {
if (event.keycode) {
shortcut.keycode = event.keycode;
} else {
shortcut.key = event.key;
}
}
event.preventDefault();
gZenKeyboardShortcuts.setShortcut(this._currentAction, shortcut);
input.value = gZenKeyboardShortcuts.shortCutToString(shortcut);
input.classList.remove('zenCKSOption-input-not-set');
let input = document.querySelector(`.${ZEN_CKS_INPUT_FIELD_CLASS}[${KEYBIND_ATTRIBUTE_KEY}="${this._currentActionID}"]`);
const modifiers = new KeyShortcutModifiers(event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, false);
const modifiersActive = modifiers.areAnyActive();
if (gZenKeyboardShortcuts.isValidShortcut(shortcut)) {
input.classList.remove('zenCKSOption-input-invalid');
} else {
input.classList.add('zenCKSOption-input-invalid');
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-not-set`);
let shortcut = event.key;
shortcut = shortcut.replace(/Ctrl|Control|Shift|Alt|Option|Cmd|Meta/, ''); // Remove all modifiers
if (shortcut == 'Tab' && !modifiersActive) {
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-editing`);
this._latestValidKey = null;
return;
} else if (shortcut == 'Escape' && !modifiersActive) {
const hasConflicts = gZenKeyboardShortcutsManager.checkForConflicts(
this._latestValidKey ? this._latestValidKey : shortcut,
this._latestModifier ? this._latestModifier : modifiers, this._currentActionID);
if (!this._latestValidKey && !this._latestModifier) {
} else if (!this._latestValidKey || hasConflicts) {
if (!input.classList.contains(`${ZEN_CKS_INPUT_FIELD_CLASS}-invalid`)) {
input.classList.add(`${ZEN_CKS_INPUT_FIELD_CLASS}-invalid`);
}
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-unsafed`);
if (hasConflicts && !input.nextElementSibling) {
input.after(window.MozXULElement.parseXULToFragment(`
<label class="${ZEN_CKS_CLASS_BASE}-conflict" data-l10n-id="zen-key-conflict"></label>
`));
}
} else {
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-editing`);
this._editDone(this._latestValidKey, this._latestModifier);
this._latestValidKey = null;
this._latestModifier = null;
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-invalid`);
input.classList.add(`${ZEN_CKS_INPUT_FIELD_CLASS}-valid`);
setTimeout(() => {
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-valid`);
}, 1000);
const sibling = input.nextElementSibling;
if (sibling && sibling.classList.contains(`${ZEN_CKS_CLASS_BASE}-conflict`)) {
sibling.remove();
}
}
this._hasSafed = true;
input.blur();
this._currentActionID = null;
return;
} else if (shortcut == 'Backspace' && !modifiersActive) {
this._resetShortcut(input);
this._latestValidKey = null;
this._latestModifier = null;
this._hasSafed = true;
return;
}
this._latestModifier = modifiers;
this._hasSafed = false;
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-invalid`);
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-not-set`);
input.value = modifiers.toUserString() + shortcut;
this._latestValidKey = shortcut;
},
};
@@ -829,11 +943,6 @@ Preferences.addAll([
type: 'bool',
default: true,
},
{
id: 'zen.keyboard.shortcuts.disable-firefox',
type: 'bool',
default: false,
},
{
id: 'zen.workspaces.hide-default-container-indicator',
type: 'bool',
@@ -849,4 +958,19 @@ Preferences.addAll([
type: 'bool',
default: true,
},
]);
{
id: 'zen.tab-unloader.enabled',
type: 'bool',
default: true,
},
{
id: 'zen.view.split-view.change-on-hover',
type: 'bool',
default: true,
},
{
id: 'zen.tab-unloader.timeout-minutes',
type: 'int',
default: 10,
}
]);

View File

@@ -10,12 +10,10 @@
<groupbox id="zenCKSGroup" data-category="paneZenCKS" hidden="true" class="highlighting-group">
<label><html:h2 data-l10n-id="zen-settings-CKS-header"/></label>
<description class="description-deemphasized" data-l10n-id="zen-settings-CKS-description" />
<vbox class="indent">
<checkbox id="zenKSCDisableFirefoxShortcuts"
data-l10n-id="zen-settings-CKS-disable-firefox"
preference="zen.keyboard.shortcuts.disable-firefox" />
</vbox>
<vbox id="zenCKSOptions-wrapper"></vbox>
<hbox>
<button id="zenCKSResetButton" data-l10n-id="zen-settings-CKS-reset-shortcuts" class="reset-button"/>
</hbox>
<vbox id="zenCKSOption-wrapper"></vbox>
</groupbox>
</html:template>
</html:template>

View File

@@ -255,6 +255,22 @@
</hbox>
</groupbox>
<hbox id="zenSplitViewCategory"
class="subcategory"
hidden="true"
data-category="paneZenLooks">
<html:h1 data-l10n-id="zen-split-view-title"/>
</hbox>
<groupbox id="zenSplitViewGroup" data-category="paneZenLooks" hidden="true" class="highlighting-group">
<label><html:h2 data-l10n-id="zen-split-view-header"/></label>
<description class="description-deemphasized" data-l10n-id="zen-split-view-description" />
<checkbox id="zenLooksAndFeelSplitViewChangeOnHover"
data-l10n-id="zen-split-view-change-on-hover"
preference="zen.view.split-view.change-on-hover"/>
</groupbox>
<hbox id="zenVerticalTabsCategory"
class="subcategory"
hidden="true"

View File

@@ -1,19 +1,19 @@
<html:template id="template-paneZenWorkspaces">
<html:template id="template-paneZenTabManagement">
<hbox id="ZenWorkspacesCategory"
class="subcategory"
hidden="true"
data-category="paneZenWorkspaces">
data-category="paneZenTabManagement">
<html:h1 data-l10n-id="pane-workspaces-title"/>
</hbox>
<hbox id="zenSidePanelsCategory"
class="subcategory"
hidden="true"
data-category="paneZenWorkspaces">
data-category="paneZenTabManagement">
<html:h1 data-l10n-id="pane-settings-workspaces-title"/>
</hbox>
<groupbox id="zenSidePanelsGroup" data-category="paneZenWorkspaces" hidden="true" class="highlighting-group">
<groupbox id="zenWorkspacesGroup" data-category="paneZenTabManagement" hidden="true" class="highlighting-group">
<label><html:h2 data-l10n-id="zen-settings-workspaces-header"/></label>
<description class="description-deemphasized" data-l10n-id="zen-settings-workspaces-description" />
@@ -33,4 +33,32 @@
</vbox>
</groupbox>
<hbox id="zenTabsUnloadCategory"
class="subcategory"
hidden="true"
data-category="paneZenTabManagement">
<html:h1 data-l10n-id="pane-zen-tabs-unloader-title"/>
</hbox>
<groupbox id="zenTabsUnloadGroup" data-category="paneZenTabManagement" hidden="true" class="highlighting-group">
<label><html:h2 data-l10n-id="zen-tabs-unloader-header"/></label>
<description class="description-deemphasized" data-l10n-id="zen-tabs-unloader-description" />
<checkbox id="zenTabsUnloadActivate"
data-l10n-id="zen-tabs-unloader-enabled"
preference="zen.tab-unloader.enabled"/>
<label><html:h2 data-l10n-id="zen-tabs-unloader-unload-delay"/></label>
<hbox id="zenTabsUnloadDelayContainer">
<description class="description-deemphasized" data-l10n-id="zen-tabs-unloader-unload-delay-description" />
<html:input id="zenTabsUnloadDelay"
type="number"
min="1"
max="1000"
preference="zen.tab-unloader.timeout-minutes"/>
</hbox>
</groupbox>
</html:template>

View File

@@ -1,10 +1,24 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..c776348e776c1f9efc9b9f2ca479b1050f0a750b 100644
index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..807eb0c493f15643412b05d8dad81d36d7470155 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -453,10 +453,12 @@
@@ -452,11 +452,26 @@
return duplicateTabs;
},
+ get _numVisiblePinTabs() {
+ let i = 0;
+ for (let tab of this.tabs) {
+ if (!tab.pinned) {
+ break;
+ }
+ if (!tab.hidden) {
+ i++;
+ }
+ }
+ return i;
+ },
+
get _numPinnedTabs() {
- for (var i = 0; i < this.tabs.length; i++) {
- if (!this.tabs[i].pinned) {
@@ -17,7 +31,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..c776348e776c1f9efc9b9f2ca479b105
}
return i;
},
@@ -2704,6 +2706,11 @@
@@ -2704,6 +2719,11 @@
);
}
@@ -29,7 +43,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..c776348e776c1f9efc9b9f2ca479b105
if (!UserInteraction.running("browser.tabs.opening", window)) {
UserInteraction.start("browser.tabs.opening", "initting", window);
}
@@ -2771,6 +2778,9 @@
@@ -2771,6 +2791,9 @@
noInitialLabel,
skipBackgroundNotify,
});
@@ -39,7 +53,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..c776348e776c1f9efc9b9f2ca479b105
if (insertTab) {
// insert the tab into the tab container in the correct position
this._insertTabAtIndex(t, {
@@ -3248,6 +3258,14 @@
@@ -3248,6 +3271,14 @@
) {
tabWasReused = true;
tab = this.selectedTab;
@@ -54,7 +68,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..c776348e776c1f9efc9b9f2ca479b105
if (!tabData.pinned) {
this.unpinTab(tab);
} else {
@@ -3297,6 +3315,13 @@
@@ -3297,6 +3328,13 @@
preferredRemoteType,
});
@@ -68,7 +82,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..c776348e776c1f9efc9b9f2ca479b105
if (select) {
tabToSelect = tab;
}
@@ -4184,6 +4209,7 @@
@@ -4184,6 +4222,7 @@
isLastTab ||
aTab.pinned ||
aTab.hidden ||
@@ -76,7 +90,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..c776348e776c1f9efc9b9f2ca479b105
this._removingTabs.size >
3 /* don't want lots of concurrent animations */ ||
!aTab.hasAttribute(
@@ -5117,10 +5143,10 @@
@@ -5117,10 +5156,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
},

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
index 282e7f31fe158d929130c17628f7e30f690fd666..7225cb6bae5af213718a4e2df41f855631d6ce4e 100644
index 282e7f31fe158d929130c17628f7e30f690fd666..c139830f6bbd84428310692cfb840bc390c5c6f3 100644
--- a/browser/components/tabbrowser/content/tabs.js
+++ b/browser/components/tabbrowser/content/tabs.js
@@ -1387,10 +1387,12 @@
@@ -18,3 +18,21 @@ index 282e7f31fe158d929130c17628f7e30f690fd666..7225cb6bae5af213718a4e2df41f8556
selectedTab._notselectedsinceload = false;
}
@@ -1449,7 +1451,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";
@@ -1629,7 +1631,7 @@
}
let pinned = draggedTab.pinned;
- let numPinned = gBrowser._numPinnedTabs;
+ let numPinned = gBrowser._numVisiblePinTabs;
let tabs = this._getVisibleTabs().slice(
pinned ? 0 : numPinned,
pinned ? numPinned : undefined

View File

@@ -305,10 +305,19 @@ groupbox h2 {
/* Workspace */
#category-zen-workspaces > .category-icon {
#category-zen-tabs-management > .category-icon {
list-style-image: url('chrome://browser/skin/window.svg');
}
#zenTabsUnloadDelayContainer {
display: flex;
align-items: center;
& #zenTabsUnloadDelay {
margin-left: auto;
}
}
/* CKS */
#category-zen-CKS > .category-icon {
@@ -327,17 +336,29 @@ groupbox h2 {
user-select: none;
cursor: text;
background: transparent;
transition: border-color 0.1s;
}
.zenCKSOption {
margin-bottom: 10px;
display: flex;
align-items: center;
& > vbox {
width: fit-content;
justify-content: end;
min-width: 70%;
& > label {
margin-left: auto;
}
}
}
.zenCKSOption > label {
font-size: 14px;
color: light-dark(rgba(0, 0, 0, 0.7), rgba(255, 255, 255, 0.7));
width: 100%;
}
.zenCKSOption-input.zenCKSOption-input-not-set {
@@ -349,13 +370,35 @@ groupbox h2 {
box-shadow: 0 0 0 2px var(--zen-primary-color);
}
.zenCKSOption-conflict {
color: red;
margin-left: 10px;
margin-top: 5px;
}
.zenCKSOption-unsafed {
color: yellow;
margin-left: 10px;
margin-top: 5px;
}
.zenCKSOption-input.zenCKSOption-input-invalid {
border-color: red;
}
#zenCKSOption-wrapper > [data-group]:not(:first-of-type) {
border-top: 1px solid light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
padding-top: 10px;
.zenCKSOption-input.zenCKSOption-input-unsafed {
border-color: yellow;
}
.zenCKSOption-input.zenCKSOption-input-valid {
border-color: green;
}
#zenCKSOption-wrapper > [data-group] {
border-bottom: 1px solid light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
padding-top: 20px;
padding-bottom: 10px;
margin-bottom: 15px;
}
/* Theme builder */

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
index 1ef4874d6e7f3b43f4c82db6a679883cf34ab493..33837e5f56e4fbefa2a2d2ee68ee51750357db59 100644
index 1ef4874d6e7f3b43f4c82db6a679883cf34ab493..12eef770f5ae48b83cadd10a4ed21b8fab508bfe 100644
--- a/browser/themes/shared/tabbrowser/tabs.css
+++ b/browser/themes/shared/tabbrowser/tabs.css
@@ -17,7 +17,7 @@
@@ -53,3 +53,11 @@ index 1ef4874d6e7f3b43f4c82db6a679883cf34ab493..33837e5f56e4fbefa2a2d2ee68ee5175
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
margin-inline-start: 2px;
}
@@ -962,7 +961,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
list-style-image: url(chrome://global/skin/icons/plus.svg);
}
-#tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow]) ~ #new-tab-button,
#tabbrowser-tabs[orient="vertical"] > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button,
#tabbrowser-tabs[overflow] > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button,
#tabbrowser-tabs:not([hasadjacentnewtabbutton]) > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button,

View File

@@ -975,6 +975,11 @@ menuitem[id='placesContext_new:separator'] {
--menu-image: url('close-all.svg');
}
#context_zenUnloadTab,
#context_zenTabActions {
--menu-image: url('close-all.svg');
}
.customize-context-reportExtension,
.unified-extensions-context-menu-report-extension {
--menu-image: url('report.svg');

View File

@@ -1,13 +0,0 @@
diff --git a/dom/events/KeyEventHandler.cpp b/dom/events/KeyEventHandler.cpp
index 3f3ca808e8..0828b37f51 100644
--- a/dom/events/KeyEventHandler.cpp
+++ b/dom/events/KeyEventHandler.cpp
@@ -641,7 +641,7 @@ void KeyEventHandler::BuildModifiers(nsAString& aModifiers) {
} else if (strcmp(token, "control") == 0) {
mKeyMask |= cControl | cControlMask;
} else if (strcmp(token, "accel") == 0) {
- mKeyMask |= AccelKeyMask();
+ mKeyMask |= cControl | cControlMask;
} else if (strcmp(token, "access") == 0) {
mKeyMask |= KeyToMask(LookAndFeel::GetMenuAccessKey());
} else if (strcmp(token, "any") == 0) {

View File

@@ -0,0 +1,13 @@
diff --git a/toolkit/content/widgets/moz-toggle/moz-toggle.css b/toolkit/content/widgets/moz-toggle/moz-toggle.css
index 8509f15f02f01b3259e6b6ddf97203e7aa8e9e60..989bd48d3615210cc090a6e753d86bd23fcb46b6 100644
--- a/toolkit/content/widgets/moz-toggle/moz-toggle.css
+++ b/toolkit/content/widgets/moz-toggle/moz-toggle.css
@@ -34,7 +34,7 @@
--toggle-background-color: var(--button-background-color);
--toggle-background-color-hover: var(--button-background-color-hover);
--toggle-background-color-active: var(--button-background-color-active);
- --toggle-background-color-pressed: var(--color-accent-primary);
+ --toggle-background-color-pressed: var(--zen-primary-color);
--toggle-background-color-pressed-hover: var(--color-accent-primary-hover);
--toggle-background-color-pressed-active: var(--color-accent-primary-active);
--toggle-border-color: var(--border-color-interactive);

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/mozapps/extensions/AddonManager.sys.mjs b/toolkit/mozapps/extensions/AddonManager.sys.mjs
index 2f855e6e48f420e3782d3be31cfdfa6c40db479b..911a6494812f0496ac928489244f2ac7bf0ed025 100644
index 2f855e6e48f420e3782d3be31cfdfa6c40db479b..de55b4c7ff7517169ac56693b4cb3c46b3c20736 100644
--- a/toolkit/mozapps/extensions/AddonManager.sys.mjs
+++ b/toolkit/mozapps/extensions/AddonManager.sys.mjs
@@ -1214,7 +1214,7 @@ var AddonManagerInternal = {
@@ -1214,12 +1214,12 @@ var AddonManagerInternal = {
ITEM_VERSION: aAddon.version,
ITEM_STATUS: addonStatus,
APP_ID: Services.appinfo.ID,
@@ -11,3 +11,9 @@ index 2f855e6e48f420e3782d3be31cfdfa6c40db479b..911a6494812f0496ac928489244f2ac7
REQ_VERSION: UPDATE_REQUEST_VERSION,
APP_OS: Services.appinfo.OS,
APP_ABI: Services.appinfo.XPCOMABI,
APP_LOCALE: getLocale(),
- CURRENT_APP_VERSION: Services.appinfo.version,
+ CURRENT_APP_VERSION: AppConstants.ZEN_FIREFOX_VERSION,
})
);

View File

@@ -0,0 +1,13 @@
diff --git a/toolkit/mozapps/extensions/internal/AddonUpdateChecker.sys.mjs b/toolkit/mozapps/extensions/internal/AddonUpdateChecker.sys.mjs
index 5b7b10a7641c57e1f5206fb57030c8c2afb60971..a1161428e6ae4141b3d6767042edf90935694121 100644
--- a/toolkit/mozapps/extensions/internal/AddonUpdateChecker.sys.mjs
+++ b/toolkit/mozapps/extensions/internal/AddonUpdateChecker.sys.mjs
@@ -558,7 +558,7 @@ export var AddonUpdateChecker = {
aIgnoreStrictCompat
) {
if (!aAppVersion) {
- aAppVersion = Services.appinfo.version;
+ aAppVersion = Services.appinfo.platformVersion;
}
if (!aPlatformVersion) {
aPlatformVersion = Services.appinfo.platformVersion;

View File

@@ -18,7 +18,7 @@
"brandShortName": "Zen Browser",
"brandFullName": "Zen Browser",
"release": {
"displayVersion": "1.0.1-a.3",
"displayVersion": "1.0.1-a.6",
"github": {
"repo": "zen-browser/desktop"
},