- **Preferences**:
- Added a new preference `zen.view.sidebar-expanded.on-hover.paused-for-expand` to manage the paused state of the sidebar hover functionality.
- Updated `zen.view.sidebar-expanded.on-hover` preference handling to ensure proper behavior when toggling the sidebar.
- **ZenUIManager.mjs**:
- Updated `_updateOnHoverVerticalTabs` method to handle the expanded state and remove hover attributes when the sidebar is expanded.
- Refactored `_updateEvent` method to check and handle the expanded state of the sidebar, and to open or close the sidebar accordingly.
- Added `openSidebar` and `closeSidebar` methods to manage the sidebar's expanded state and related attributes.
- Refactored `toggleExpand` method to handle the new `paused-for-expand` preference and ensure proper toggling of the sidebar's expanded state.
- **zen-settings.js**:
- Updated `setCompactModeStyle` method to handle the new `paused-for-expand` preference.
- Ensured that the `paused-for-expand` preference is reset when the sidebar expand strategy is changed.
- **zen-browser.js**:
- Added the new preference `zen.view.sidebar-expanded.on-hover.paused-for-expand` with a default value of `false`.
- **Submodule Updates**:
- Updated `l10n` submodule to the latest commit `dd93803b84f398834049a3f650536fbdbd14cbca`.
- Updated `zen-components` submodule to the latest commit `d853fa8de4167dfd4d1289f4f15792a698c738c3-dirty`.
- **Miscellaneous**:
- Fixed indentation issues in `ZenUIManager.mjs`.
- Removed commented-out code in `ZenUIManager.mjs`.
- Ensured proper formatting and alignment of code blocks.
ISSUE: #2156
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 adds the ability to open a new tab by middle-clicking the tab bar.
The functionality is implemented by adding an event listener for the "mouseup" event on the tab bar and checking if the middle mouse button was clicked. If so, it calls the `BrowserCommands.openTab()` function to open a new tab and prevents the default behavior of the event.