feat: Enable opening new tab on middle click in tab bar

This commit adds the functionality to open a new tab on middle click in the tab bar. The code changes include adding the preference 'zen.tabs.newtab-on-middle-click' and defining the lazy preference getter 'canOpenTabOnMiddleClick' in the ZenUIManager. The 'openNewTabOnTabsMiddleClick' function now checks if the middle click event occurred on the tab bar and if the preference is enabled before opening a new tab.

Refs: #1887
This commit is contained in:
mauro-balades
2024-10-03 20:59:36 +02:00
parent 28745667b8
commit 88fb4d5e04
2 changed files with 13 additions and 3 deletions

View File

@@ -99,9 +99,12 @@ pref('zen.view.sidebar-expanded.max-width', 400);
pref('zen.view.sidebar-collapsed.hide-mute-button', true);
pref('zen.tabs.dim-pending', true);
pref('zen.tabs.newtab-on-middle-click', true);
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);

View File

@@ -87,14 +87,21 @@ var gZenVerticalTabsManager = {
let tabs = document.getElementById("tabbrowser-tabs");
XPCOMUtils.defineLazyPreferenceGetter(
this,
"canOpenTabOnMiddleClick",
"zen.tabs.newtab-on-middle-click",
true
);
if (tabs) {
tabs.addEventListener("mouseup", this.openNewTabOnTabsMiddleClick.bind(this));
}
},
openNewTabOnTabsMiddleClick(event) {
if (event.button === 1 && event.target.id === "tabbrowser-tabs") {
BrowserCommands.openTab({ event });
if (event.button === 1 && event.target.id === "tabbrowser-tabs" && this.canOpenTabOnMiddleClick) {
document.getElementById("cmd_newNavigatorTabNoEvent").doCommand();
event.stopPropagation();
event.preventDefault();
}