Refactor workspace switching logic to correctly handle
essential tabs and introduce container-specific essentials.
This change addresses issues with essential tabs not being
handled correctly during workspace switches.
The `changeWorkspace` function is refactored to improve
clarity and maintainability. The logic for showing and
hiding tabs is streamlined, and tab selection is handled
more robustly. A new `_shouldShowTab` function is
introduced to centralize the logic for determining tab
visibility based on workspace and container settings. The
logic also handles pinned essential tabs in the different workspace types.
The pinned tab manager is updated to support container-
specific essentials and to refresh pinned tabs on workspace
changes. The `_shouldShowPin` function is introduced to
manage visibility of pinned tabs in different workspaces
considering essential tabs, pinned tabs and containers.
This change also fixes a bug where the selected tab would
sometimes be changed unexpectedly when switching
workspaces.
Update border radius in zen-browser.js to 8 pixels
Set default width to 250px in ZenStartup.mjs
Adjust overflow and border radius in zen-browser-container.css
Update background color in vertical-tabs.css
This commit introduces a new feature: pinned tab management. It allows users to pin tabs and define whether to reset pinned tabs on close.
- Adds a new `ZenPinnedTabManager` component to manage pinned tabs.
- Updates `zen-assets.inc.xhtml` and `zen-assets.jar.inc.mn` to include the new component.
- Modifies the `ZenStartup.mjs` file to initialize the new manager.
- Introduces a new preference `zen.pinned-tab-manager.reset-pinned-tab-on-close-shortcut` to control the behavior of pinned tabs on close.
- Updates the settings UI to reflect the new pinned tab management functionality.
- Refactors related preferences from `zen.tab-unloader.*` to `zen.pinned-tab-manager.*`.
This feature enhances Zen's tab management capabilities by providing users with more control over their pinned tabs.