From 88fb4d5e04d9afda072312dcb4949cf346fd2b09 Mon Sep 17 00:00:00 2001 From: mauro-balades Date: Thu, 3 Oct 2024 20:59:36 +0200 Subject: [PATCH] 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 --- src/browser/app/profile/zen-browser.js | 5 ++++- src/browser/base/content/ZenUIManager.mjs | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index f9680152a..8247521d6 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -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); diff --git a/src/browser/base/content/ZenUIManager.mjs b/src/browser/base/content/ZenUIManager.mjs index 798c77154..01e105585 100644 --- a/src/browser/base/content/ZenUIManager.mjs +++ b/src/browser/base/content/ZenUIManager.mjs @@ -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(); }