mirror of
https://github.com/zen-browser/desktop.git
synced 2025-10-10 03:46:38 +00:00
feat: Add config to support more than 12 essential tabs, p=#10731
This commit is contained in:
@@ -11,6 +11,9 @@
|
|||||||
- name: zen.tabs.rename-tabs
|
- name: zen.tabs.rename-tabs
|
||||||
value: true
|
value: true
|
||||||
|
|
||||||
|
- name: zen.tabs.essentials.max
|
||||||
|
value: 12
|
||||||
|
|
||||||
- name: zen.tabs.show-newtab-vertical
|
- name: zen.tabs.show-newtab-vertical
|
||||||
value: true
|
value: true
|
||||||
|
|
||||||
|
@@ -38,6 +38,12 @@
|
|||||||
'zen.pinned-tab-manager.close-shortcut-behavior',
|
'zen.pinned-tab-manager.close-shortcut-behavior',
|
||||||
'switch'
|
'switch'
|
||||||
);
|
);
|
||||||
|
XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
|
lazy,
|
||||||
|
'zenTabsEssentialsMax',
|
||||||
|
'zen.tabs.essentials.max',
|
||||||
|
12
|
||||||
|
);
|
||||||
ChromeUtils.defineESModuleGetters(lazy, {
|
ChromeUtils.defineESModuleGetters(lazy, {
|
||||||
E10SUtils: 'resource://gre/modules/E10SUtils.sys.mjs',
|
E10SUtils: 'resource://gre/modules/E10SUtils.sys.mjs',
|
||||||
});
|
});
|
||||||
@@ -68,8 +74,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
class nsZenPinnedTabManager extends nsZenDOMOperatedFeature {
|
class nsZenPinnedTabManager extends nsZenDOMOperatedFeature {
|
||||||
MAX_ESSENTIALS_TABS = 12;
|
|
||||||
|
|
||||||
hasInitializedPins = false;
|
hasInitializedPins = false;
|
||||||
promiseInitializedPinned = new Promise((resolve) => {
|
promiseInitializedPinned = new Promise((resolve) => {
|
||||||
this._resolvePinnedInitializedInternal = resolve;
|
this._resolvePinnedInitializedInternal = resolve;
|
||||||
@@ -140,6 +144,10 @@
|
|||||||
return !gZenWorkspaces.privateWindowOrDisabled;
|
return !gZenWorkspaces.privateWindowOrDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get maxEssentialTabs() {
|
||||||
|
return lazy.zenTabsEssentialsMax;
|
||||||
|
}
|
||||||
|
|
||||||
async refreshPinnedTabs({ init = false } = {}) {
|
async refreshPinnedTabs({ init = false } = {}) {
|
||||||
if (!this.enabled) {
|
if (!this.enabled) {
|
||||||
return;
|
return;
|
||||||
@@ -1055,7 +1063,7 @@
|
|||||||
const element = window.MozXULElement.parseXULToFragment(`
|
const element = window.MozXULElement.parseXULToFragment(`
|
||||||
<menuitem id="context_zen-add-essential"
|
<menuitem id="context_zen-add-essential"
|
||||||
data-l10n-id="tab-context-zen-add-essential"
|
data-l10n-id="tab-context-zen-add-essential"
|
||||||
data-l10n-args='{"num": "0"}'
|
data-l10n-args='{"num": "0", "max": "12"}'
|
||||||
hidden="true"
|
hidden="true"
|
||||||
disabled="true"
|
disabled="true"
|
||||||
command="cmd_contextZenAddToEssentials"/>
|
command="cmd_contextZenAddToEssentials"/>
|
||||||
@@ -1081,6 +1089,7 @@
|
|||||||
contextTab.getAttribute('zen-essential') || !!contextTab.group;
|
contextTab.getAttribute('zen-essential') || !!contextTab.group;
|
||||||
document.l10n.setArgs(document.getElementById('context_zen-add-essential'), {
|
document.l10n.setArgs(document.getElementById('context_zen-add-essential'), {
|
||||||
num: gBrowser._numZenEssentials,
|
num: gBrowser._numZenEssentials,
|
||||||
|
max: this.maxEssentialTabs,
|
||||||
});
|
});
|
||||||
document
|
document
|
||||||
.getElementById('cmd_contextZenAddToEssentials')
|
.getElementById('cmd_contextZenAddToEssentials')
|
||||||
@@ -1404,7 +1413,7 @@
|
|||||||
(tab.getAttribute('usercontextid') || 0) !=
|
(tab.getAttribute('usercontextid') || 0) !=
|
||||||
gZenWorkspaces.getActiveWorkspaceFromCache().containerTabId &&
|
gZenWorkspaces.getActiveWorkspaceFromCache().containerTabId &&
|
||||||
gZenWorkspaces.containerSpecificEssentials
|
gZenWorkspaces.containerSpecificEssentials
|
||||||
) && gBrowser._numZenEssentials < this.MAX_ESSENTIALS_TABS
|
) && gBrowser._numZenEssentials < this.maxEssentialTabs
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user