This commit introduces a new Essentials Toolbar feature to Zen. It provides a more streamlined and organized way for users to access frequently used bookmakrs directly from the sidebar.
- Added `ZenEssentialsToolbar.mjs` to provide the logic for the toolbar.
- Updated the sidebar CSS (`zen-sidebar.css`) to style the Essentials Toolbar.
- Modified `ZenStartup.mjs` to initialize the Essentials Toolbar.
- Made changes to `browserPlacesViews-js.patch` to integrate with existing bookmark functionality.
- Added a new preference `zen.essentials.enabled` to enable/disable the Essentials Toolbar.
- **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 introduces a new preference, "zen.workspaces.force-container-workspace", that allows users to control whether container tabs are automatically placed in a dedicated workspace. When enabled, this feature ensures that all tabs from a container are grouped together within a specific workspace.
The following files were modified:
- `src/browser/components/preferences/zen-settings.js`: Added the new preference definition.
- `src/browser/app/profile/zen-browser.js`: Set the default value for the new preference.
- `src/browser/components/preferences/zenTabsManagement.inc.xhtml`: Added a checkbox to control the new preference in the settings UI.
This commit replaces the four separate checkboxes for close shortcut options for pinned tabs with a single menulist. This makes the UI more streamlined and user-friendly, as users can now easily select from a list of available options instead of having to check or uncheck multiple boxes.
The new menulist offers the following options:
- reset-unload-switch: Resets the tab if it was changed, otherwise unloads it.
- unload-switch: Unloads the tab if it was changed, otherwise does nothing.
- reset-switch: Resets the tab if it was changed, otherwise switches to it.
- switch: Switches to the tab.
- reset: Resets the tab.
- close: Closes the tab.
This provides a more comprehensive and flexible set of options for managing pinned tabs, making the experience more intuitive and customizable.
This commit introduces new settings for the behavior of closing pinned tabs using the close shortcut.
The following options are now available:
- **Reset pinned tab on close shortcut**: Reset the tab to the pinned URL.
- **Unload pinned tab on close shortcut**: Unload the tab.
- **Change pinned tab on close shortcut**: Change the pinned tab.
- **Close pinned tab on close shortcut**: Close the tab.
This provides more granular control over how pinned tabs are handled when the close shortcut is used, allowing users to customize the behavior to their specific needs.
This commit introduces a new option to the pinned tab manager that allows users to restore pinned tabs to their pinned URL and title, even if the current tab has a different URL.
- Adds a new preference `zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url` to control this behavior.
- Updates the tab browser, tab state, and preferences code to support the new option.
- Adds a new UI element in the settings to allow users to enable/disable this feature.
This feature enhances the pinned tab manager by providing more control over how pinned tabs are restored when the browser is restarted.
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.
This commit adds the ZenGradientGenerator module to the zen-assets.jar and zen-styles directories. The ZenGradientGenerator is responsible for generating gradients used in the Zen theme. This addition will enhance the visual appearance of the theme.
This commit adds Workspaces to the list of data types that can be synced.
This introduces the following changes:
- Adds a new preference `services.sync.engine.workspaces` to control syncing of Workspaces.
- Updates the `syncChooseWhatToSync.js` and `syncChooseWhatToSync.xhtml` files to include the new Workspaces option in the UI.
- Adds relevant localization strings to `preferences-ftl`.
- Updates CSS styling for the Workspaces option.
- Updates `zen-browser.js` to disable Workspace syncing by default.
This change allows users to choose whether to sync their Workspaces across devices.