mirror of
https://github.com/zen-browser/desktop.git
synced 2025-09-06 19:38:24 +00:00
Compare commits
29 Commits
1.15b
...
new-toolti
Author | SHA1 | Date | |
---|---|---|---|
![]() |
439a27d947 | ||
![]() |
b204671931 | ||
![]() |
d035348896 | ||
![]() |
72433745bc | ||
![]() |
2436ada221 | ||
![]() |
4a5141c15c | ||
![]() |
1015537a91 | ||
![]() |
89cafdaa0b | ||
![]() |
3723517d7d | ||
![]() |
c095bc7604 | ||
![]() |
e312e3fe8d | ||
![]() |
70aeebaf66 | ||
![]() |
f9ca9cc74c | ||
![]() |
d9646f939c | ||
![]() |
8f0292d836 | ||
![]() |
95b137ac13 | ||
![]() |
b1fcaeb97f | ||
![]() |
31def1147a | ||
![]() |
0a80765589 | ||
![]() |
e34a053dd0 | ||
![]() |
5e790efdce | ||
![]() |
005cdf53bd | ||
![]() |
429f74a7c7 | ||
![]() |
1f72765227 | ||
![]() |
91f5e104d2 | ||
![]() |
994741f323 | ||
![]() |
a4ba3340e1 | ||
![]() |
5852b2aaa6 | ||
![]() |
257547acbd |
@@ -34,8 +34,8 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
|
|||||||
|
|
||||||
### Firefox Versions
|
### Firefox Versions
|
||||||
|
|
||||||
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `142.0`! 🚀
|
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `142.0.1`! 🚀
|
||||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 142.0`!
|
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 142.0.1`!
|
||||||
|
|
||||||
### Contributing
|
### Contributing
|
||||||
|
|
||||||
|
@@ -1 +1 @@
|
|||||||
784e5dbc4955e29ee7a4e0b88adefdd230f2e9fe
|
df0d5e625b9e55c502d3e9e81b29a0d52d0f8d20
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = إخفاء كليهما
|
.label = إخفاء كليهما
|
||||||
.accesskey = خ
|
.accesskey = خ
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Amaga les dues
|
.label = Amaga les dues
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Carpeta nova
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expandeix la barra lateral
|
.label = Expandeix la barra lateral
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Skrýt obojí
|
.label = Skrýt obojí
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nová složka
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Zvětšit boční panel
|
.label = Zvětšit boční panel
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Hide both
|
.label = Hide both
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Skjul begge
|
.label = Skjul begge
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Ny mappe
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Udvid Sidepanel
|
.label = Udvid Sidepanel
|
||||||
|
@@ -3,7 +3,7 @@ zen-folders-search-placeholder =
|
|||||||
zen-folders-panel-rename-folder =
|
zen-folders-panel-rename-folder =
|
||||||
.label = Ordner umbenennen
|
.label = Ordner umbenennen
|
||||||
zen-folders-panel-unpack-folder =
|
zen-folders-panel-unpack-folder =
|
||||||
.label = Ordner entpacken
|
.label = Ordner auflösen
|
||||||
zen-folders-new-subfolder =
|
zen-folders-new-subfolder =
|
||||||
.label = Neuer Unterordner
|
.label = Neuer Unterordner
|
||||||
zen-folders-panel-delete-folder =
|
zen-folders-panel-delete-folder =
|
||||||
@@ -15,7 +15,7 @@ zen-folders-panel-change-folder-space =
|
|||||||
zen-folders-panel-change-icon-folder =
|
zen-folders-panel-change-icon-folder =
|
||||||
.label = Symbol ändern
|
.label = Symbol ändern
|
||||||
zen-folders-unload-all-tooltip =
|
zen-folders-unload-all-tooltip =
|
||||||
.tooltiptext = Unload all tabs in this folder
|
.tooltiptext = Alle Tabs in diesem Ordner entladen
|
||||||
zen-folders-unload-folder =
|
zen-folders-unload-folder =
|
||||||
.label = Unload All Tabs
|
.label = Alle Tabs entladen
|
||||||
zen-folders-search-no-results = Keine passenden Tabs gefunden 🤔
|
zen-folders-search-no-results = Keine passenden Tabs gefunden 🤔
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Beide ausblenden
|
.label = Beide ausblenden
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Neuer Ordner
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Seitenleiste erweitern
|
.label = Seitenleiste erweitern
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Απόκρυψη όλων
|
.label = Απόκρυψη όλων
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Νέος φάκελος
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Επέκταση Πλαϊνής στήλης
|
.label = Επέκταση Πλαϊνής στήλης
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Hide both
|
.label = Hide both
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -18,7 +18,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Hide both
|
.label = Hide both
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
|
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Ocultar ambas
|
.label = Ocultar ambas
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nueva carpeta
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expandir barra lateral
|
.label = Expandir barra lateral
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Peida mõlemad
|
.label = Peida mõlemad
|
||||||
.accesskey = P
|
.accesskey = P
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Laienda külgriba
|
.label = Laienda külgriba
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Hide both
|
.label = Hide both
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Piilota molemmat
|
.label = Piilota molemmat
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -10,7 +10,7 @@ zen-layout-collapsed-toolbar = Barre d’outils réduite
|
|||||||
sync-currently-syncing-workspaces = Espaces de travail
|
sync-currently-syncing-workspaces = Espaces de travail
|
||||||
sync-engine-workspaces =
|
sync-engine-workspaces =
|
||||||
.label = Espaces de travail
|
.label = Espaces de travail
|
||||||
.tooltiptext = Synchroniser vos espaces de travail sur plusieurs appareils
|
.tooltiptext = Synchroniser vos Espaces de travail sur plusieurs appareils
|
||||||
.accesskey = W
|
.accesskey = W
|
||||||
zen-glance-title = Aperçu
|
zen-glance-title = Aperçu
|
||||||
zen-glance-header = Paramètres généraux d’Aperçu
|
zen-glance-header = Paramètres généraux d’Aperçu
|
||||||
@@ -69,10 +69,10 @@ zen-pinned-tab-manager-reset-close-shortcut-option =
|
|||||||
zen-pinned-tab-manager-close-close-shortcut-option =
|
zen-pinned-tab-manager-close-close-shortcut-option =
|
||||||
.label = Fermer l’onglet
|
.label = Fermer l’onglet
|
||||||
pane-zen-workspaces-header = Espaces de travail
|
pane-zen-workspaces-header = Espaces de travail
|
||||||
zen-settings-workspaces-header = Paramètres généraux des espaces de travail
|
zen-settings-workspaces-header = Paramètres généraux des Espaces de travail
|
||||||
zen-settings-workspaces-description = Avec des espaces de travail, vous pouvez avoir plusieurs sessions de navigation à la fois !
|
zen-settings-workspaces-description = Avec les Espaces de travail, vous pouvez avoir plusieurs sessions de navigation à la fois !
|
||||||
zen-settings-workspaces-enabled =
|
zen-settings-workspaces-enabled =
|
||||||
.label = Activer les espaces de travail
|
.label = Activer les Espaces de travail
|
||||||
zen-settings-workspaces-hide-default-container-indicator =
|
zen-settings-workspaces-hide-default-container-indicator =
|
||||||
.label = Dans la barre d’onglets, masquer l’indicateur de conteneur par défaut
|
.label = Dans la barre d’onglets, masquer l’indicateur de conteneur par défaut
|
||||||
zen-key-unsaved = Raccourci non sauvegardé ! Pour l’enregistrer, veuillez le resaisir et en appuyer sur Échap.
|
zen-key-unsaved = Raccourci non sauvegardé ! Pour l’enregistrer, veuillez le resaisir et en appuyer sur Échap.
|
||||||
@@ -99,7 +99,7 @@ zen-theme-disable-all-disabled =
|
|||||||
.title = Activer tous les mods
|
.title = Activer tous les mods
|
||||||
zen-theme-marketplace-description = Trouvez et installez des mods à partir du magasin.
|
zen-theme-marketplace-description = Trouvez et installez des mods à partir du magasin.
|
||||||
zen-theme-marketplace-remove-button =
|
zen-theme-marketplace-remove-button =
|
||||||
.label = Supprimer le thème
|
.label = Supprimer le mod
|
||||||
zen-theme-marketplace-check-for-updates-button =
|
zen-theme-marketplace-check-for-updates-button =
|
||||||
.label = Vérifier les mises à jour
|
.label = Vérifier les mises à jour
|
||||||
zen-theme-marketplace-import-button =
|
zen-theme-marketplace-import-button =
|
||||||
@@ -113,9 +113,9 @@ zen-theme-marketplace-export-failure = Une erreur s'est produite lors de l'expor
|
|||||||
zen-theme-marketplace-updates-success = Mods mis à jour avec succès
|
zen-theme-marketplace-updates-success = Mods mis à jour avec succès
|
||||||
zen-theme-marketplace-updates-failure = Impossible de trouver des mises à jour !
|
zen-theme-marketplace-updates-failure = Impossible de trouver des mises à jour !
|
||||||
zen-theme-marketplace-toggle-enabled-button =
|
zen-theme-marketplace-toggle-enabled-button =
|
||||||
.title = Désactiver le thème
|
.title = Désactiver le mod
|
||||||
zen-theme-marketplace-toggle-disabled-button =
|
zen-theme-marketplace-toggle-disabled-button =
|
||||||
.title = Activer le thème
|
.title = Activer le mod
|
||||||
zen-theme-marketplace-remove-confirmation = Êtes-vous sûr de vouloir supprimer ce mod ?
|
zen-theme-marketplace-remove-confirmation = Êtes-vous sûr de vouloir supprimer ce mod ?
|
||||||
zen-theme-marketplace-close-modal = Fermer
|
zen-theme-marketplace-close-modal = Fermer
|
||||||
zen-theme-marketplace-theme-header-title =
|
zen-theme-marketplace-theme-header-title =
|
||||||
@@ -128,7 +128,7 @@ pane-zen-marketplace-title = Mods Zen
|
|||||||
zen-themes-auto-update =
|
zen-themes-auto-update =
|
||||||
.label = Mettre à jour automatiquement les mods installés lors du démarrage
|
.label = Mettre à jour automatiquement les mods installés lors du démarrage
|
||||||
zen-settings-workspaces-force-container-tabs-to-workspace =
|
zen-settings-workspaces-force-container-tabs-to-workspace =
|
||||||
.label = À l'ouverture des onglets du conteneur, basculer vers l’espace de travail où le conteneur est défini par défaut
|
.label = À l'ouverture des onglets du conteneur, basculer vers l’Espace de travail où le conteneur est défini par défaut
|
||||||
zen-theme-marketplace-link = Visiter le magasin
|
zen-theme-marketplace-link = Visiter le magasin
|
||||||
zen-dark-theme-styles-header = Styles de thème sombre
|
zen-dark-theme-styles-header = Styles de thème sombre
|
||||||
zen-dark-theme-styles-description = Personnalisez le thème sombre selon vos préférences
|
zen-dark-theme-styles-description = Personnalisez le thème sombre selon vos préférences
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Masquer les deux
|
.label = Masquer les deux
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nouveau dossier
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Étendre la barre latérale
|
.label = Étendre la barre latérale
|
||||||
|
@@ -15,7 +15,7 @@ zen-folders-panel-change-folder-space =
|
|||||||
zen-folders-panel-change-icon-folder =
|
zen-folders-panel-change-icon-folder =
|
||||||
.label = Athraigh Deilbhín
|
.label = Athraigh Deilbhín
|
||||||
zen-folders-unload-all-tooltip =
|
zen-folders-unload-all-tooltip =
|
||||||
.tooltiptext = Unload all tabs in this folder
|
.tooltiptext = Díluchtaigh gach cluaisín sa bhfillteán seo
|
||||||
zen-folders-unload-folder =
|
zen-folders-unload-folder =
|
||||||
.label = Unload All Tabs
|
.label = Díluchtaigh Gach Cluaisín
|
||||||
zen-folders-search-no-results = Níl aon chluaisíní ann a mheaitseálann an cuardach sin 🤔
|
zen-folders-search-no-results = Níl aon chluaisíní ann a mheaitseálann an cuardach sin 🤔
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Folaigh an dá cheann
|
.label = Folaigh an dá cheann
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Fillteán nua
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Barra Taoibh a Leathnú
|
.label = Barra Taoibh a Leathnú
|
||||||
|
@@ -1,21 +1,21 @@
|
|||||||
zen-folders-search-placeholder =
|
zen-folders-search-placeholder =
|
||||||
.placeholder = חיפוש { $folder-name }...
|
.placeholder = חיפוש { $folder-name }...
|
||||||
zen-folders-panel-rename-folder =
|
zen-folders-panel-rename-folder =
|
||||||
.label = Rename Folder
|
.label = שינוי שם תיקייה
|
||||||
zen-folders-panel-unpack-folder =
|
zen-folders-panel-unpack-folder =
|
||||||
.label = Unpack Folder
|
.label = חילוץ תיקייה
|
||||||
zen-folders-new-subfolder =
|
zen-folders-new-subfolder =
|
||||||
.label = New Subfolder
|
.label = תת תיקייה חדשה
|
||||||
zen-folders-panel-delete-folder =
|
zen-folders-panel-delete-folder =
|
||||||
.label = Delete Folder
|
.label = מחיקת תיקייה
|
||||||
zen-folders-panel-convert-folder-to-space =
|
zen-folders-panel-convert-folder-to-space =
|
||||||
.label = Convert folder to Space
|
.label = המרת תיקייה לסביבה
|
||||||
zen-folders-panel-change-folder-space =
|
zen-folders-panel-change-folder-space =
|
||||||
.label = Change Space...
|
.label = שינוי סביבה...
|
||||||
zen-folders-panel-change-icon-folder =
|
zen-folders-panel-change-icon-folder =
|
||||||
.label = Change Icon
|
.label = שינוי סמל
|
||||||
zen-folders-unload-all-tooltip =
|
zen-folders-unload-all-tooltip =
|
||||||
.tooltiptext = Unload all tabs in this folder
|
.tooltiptext = פינוי כל הכרטיסייות בתיקייה הזו
|
||||||
zen-folders-unload-folder =
|
zen-folders-unload-folder =
|
||||||
.label = Unload All Tabs
|
.label = פינוי כל הכרטיסייות
|
||||||
zen-folders-search-no-results = No tabs matching that search 🤔
|
zen-folders-search-no-results = אין כרטיסיות שתואמות לחיפוש 🤔
|
||||||
|
@@ -45,6 +45,6 @@ zen-close-label = סגור
|
|||||||
zen-singletoolbar-urlbar-placeholder-with-name =
|
zen-singletoolbar-urlbar-placeholder-with-name =
|
||||||
.placeholder = חיפוש...
|
.placeholder = חיפוש...
|
||||||
zen-icons-picker-emoji =
|
zen-icons-picker-emoji =
|
||||||
.label = Emojis
|
.label = אימוג'ים
|
||||||
zen-icons-picker-svg =
|
zen-icons-picker-svg =
|
||||||
.label = Icons
|
.label = סמלים
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = הסתרת שניהם
|
.label = הסתרת שניהם
|
||||||
.accesskey = י
|
.accesskey = י
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = תיקייה חדשה
|
.label = New Folder
|
||||||
.accesskey = מ
|
.accesskey = מ
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = הרחבת סרגל צדדי
|
.label = הרחבת סרגל צדדי
|
||||||
|
@@ -2,7 +2,7 @@ zen-panel-ui-workspaces-text = סביבות עבודה
|
|||||||
zen-panel-ui-workspaces-create =
|
zen-panel-ui-workspaces-create =
|
||||||
.label = צור סביבה
|
.label = צור סביבה
|
||||||
zen-panel-ui-folder-create =
|
zen-panel-ui-folder-create =
|
||||||
.label = Create Folder
|
.label = יצירת תיקייה
|
||||||
zen-workspaces-panel-context-delete =
|
zen-workspaces-panel-context-delete =
|
||||||
.label = מחק סיבת עבודה
|
.label = מחק סיבת עבודה
|
||||||
.accesskey = ג
|
.accesskey = ג
|
||||||
@@ -48,4 +48,4 @@ zen-workspace-creation-profile = פרופיל
|
|||||||
zen-workspace-creation-header = צור סביבה
|
zen-workspace-creation-header = צור סביבה
|
||||||
zen-workspace-creation-label = סביבות משומשות לסידור כרטיסיות והפעלות.
|
zen-workspace-creation-label = סביבות משומשות לסידור כרטיסיות והפעלות.
|
||||||
zen-workspaces-delete-workspace-title = Delete Workspace?
|
zen-workspaces-delete-workspace-title = Delete Workspace?
|
||||||
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
|
zen-workspaces-delete-workspace-body = האם ברצונך למחוק { $name }? פעולה זו לא ניתנת לביטול.
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Mindkettő elrejtése
|
.label = Mindkettő elrejtése
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Új mappa
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Oldalsáv kibontása
|
.label = Oldalsáv kibontása
|
||||||
|
@@ -15,7 +15,7 @@ zen-folders-panel-change-folder-space =
|
|||||||
zen-folders-panel-change-icon-folder =
|
zen-folders-panel-change-icon-folder =
|
||||||
.label = Ubah Ikon
|
.label = Ubah Ikon
|
||||||
zen-folders-unload-all-tooltip =
|
zen-folders-unload-all-tooltip =
|
||||||
.tooltiptext = Unload all tabs in this folder
|
.tooltiptext = Lepaskan semua tab di folder ini
|
||||||
zen-folders-unload-folder =
|
zen-folders-unload-folder =
|
||||||
.label = Unload All Tabs
|
.label = Lepaskan Semua Tab
|
||||||
zen-folders-search-no-results = Tidak ada tab yang cocok 🤔
|
zen-folders-search-no-results = Tidak ada tab yang cocok 🤔
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Sembunyikan keduanya
|
.label = Sembunyikan keduanya
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Folder baru
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Perluas Bilah Sisi
|
.label = Perluas Bilah Sisi
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Hide both
|
.label = Hide both
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Nascondi entrambi
|
.label = Nascondi entrambi
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nuova cartella
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Espandi barra laterale
|
.label = Espandi barra laterale
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = 両方隠す
|
.label = 両方隠す
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = サイドバーを展開する
|
.label = サイドバーを展開する
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = 둘 다 숨기기
|
.label = 둘 다 숨기기
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = 새 폴더
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = 사이드바 확장
|
.label = 사이드바 확장
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Slėpti abi
|
.label = Slėpti abi
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Naujas aplankas
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Išskleisti šoninę juostą
|
.label = Išskleisti šoninę juostą
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Beide verbergen
|
.label = Beide verbergen
|
||||||
.accesskey = U
|
.accesskey = U
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nieuwe map
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Zijbalk uitklappen
|
.label = Zijbalk uitklappen
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Hide both
|
.label = Hide both
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Ukryj oba
|
.label = Ukryj oba
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nowy folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Rozwiń panel boczny
|
.label = Rozwiń panel boczny
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Esconder os dois
|
.label = Esconder os dois
|
||||||
.accesskey = A
|
.accesskey = A
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nova pasta
|
.label = Nova Pasta
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expandir barra lateral
|
.label = Expandir barra lateral
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Ocultar ambas
|
.label = Ocultar ambas
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Nova pasta
|
.label = Nova Pasta
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expandir Barra Lateral
|
.label = Expandir Barra Lateral
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Скрыть оба
|
.label = Скрыть оба
|
||||||
.accesskey = Н
|
.accesskey = Н
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Новая папка
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Развернуть боковую панель
|
.label = Развернуть боковую панель
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Dölj båda
|
.label = Dölj båda
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Hide both
|
.label = Hide both
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Expand Sidebar
|
.label = Expand Sidebar
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = İkisini de Gizle
|
.label = İkisini de Gizle
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Yeni klasör
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Kenar Çubuğunu Genişlet
|
.label = Kenar Çubuğunu Genişlet
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Приховувати обидві
|
.label = Приховувати обидві
|
||||||
.accesskey = Н
|
.accesskey = Н
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Нова тека
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Розгорнути бічну панель
|
.label = Розгорнути бічну панель
|
||||||
|
@@ -97,7 +97,7 @@ zen-theme-disable-all-enabled =
|
|||||||
.title = Tắt tất cả tùy chỉnh
|
.title = Tắt tất cả tùy chỉnh
|
||||||
zen-theme-disable-all-disabled =
|
zen-theme-disable-all-disabled =
|
||||||
.title = Bật tất cả tùy chỉnh
|
.title = Bật tất cả tùy chỉnh
|
||||||
zen-theme-marketplace-description = Tìm và cài đặt tùy chỉnh từ cửa hàng.
|
zen-theme-marketplace-description = Tìm và cài đặt tinh chỉnh từ cửa hàng.
|
||||||
zen-theme-marketplace-remove-button =
|
zen-theme-marketplace-remove-button =
|
||||||
.label = Xóa tùy chỉnh
|
.label = Xóa tùy chỉnh
|
||||||
zen-theme-marketplace-check-for-updates-button =
|
zen-theme-marketplace-check-for-updates-button =
|
||||||
@@ -111,7 +111,7 @@ zen-theme-marketplace-import-failure = Có lỗi xảy ra khi nhập các tùy c
|
|||||||
zen-theme-marketplace-export-success = Các tùy chỉnh được xuất thành công
|
zen-theme-marketplace-export-success = Các tùy chỉnh được xuất thành công
|
||||||
zen-theme-marketplace-export-failure = Có lỗi xảy ra khi xuất các tùy chỉnh
|
zen-theme-marketplace-export-failure = Có lỗi xảy ra khi xuất các tùy chỉnh
|
||||||
zen-theme-marketplace-updates-success = Cập nhật tùy chỉnh thành công
|
zen-theme-marketplace-updates-success = Cập nhật tùy chỉnh thành công
|
||||||
zen-theme-marketplace-updates-failure = Không có cập nhật mới
|
zen-theme-marketplace-updates-failure = Không có cập nhật mới!
|
||||||
zen-theme-marketplace-toggle-enabled-button =
|
zen-theme-marketplace-toggle-enabled-button =
|
||||||
.title = Tắt các tùy chỉnh
|
.title = Tắt các tùy chỉnh
|
||||||
zen-theme-marketplace-toggle-disabled-button =
|
zen-theme-marketplace-toggle-disabled-button =
|
||||||
@@ -126,7 +126,7 @@ zen-theme-marketplace-input-default-placeholder =
|
|||||||
.placeholder = Gõ gì đó đi...
|
.placeholder = Gõ gì đó đi...
|
||||||
pane-zen-marketplace-title = Zen Mods
|
pane-zen-marketplace-title = Zen Mods
|
||||||
zen-themes-auto-update =
|
zen-themes-auto-update =
|
||||||
.label = Tự động câmpj nhất các tùy chỉnh khi mở trình duyệt
|
.label = Tự động cập nhật các tùy chỉnh khi mở trình duyệt
|
||||||
zen-settings-workspaces-force-container-tabs-to-workspace =
|
zen-settings-workspaces-force-container-tabs-to-workspace =
|
||||||
.label = Switch to workspace where container is set as default when opening container tabs
|
.label = Switch to workspace where container is set as default when opening container tabs
|
||||||
zen-theme-marketplace-link = Vào cửa hàng
|
zen-theme-marketplace-link = Vào cửa hàng
|
||||||
@@ -139,7 +139,7 @@ zen-compact-mode-styles-left = Ẩn thanh tab
|
|||||||
zen-compact-mode-styles-top = Ẩn thanh trên cùng
|
zen-compact-mode-styles-top = Ẩn thanh trên cùng
|
||||||
zen-compact-mode-styles-both = Ẩn cả hai
|
zen-compact-mode-styles-both = Ẩn cả hai
|
||||||
zen-urlbar-title = Thanh đường dẫn
|
zen-urlbar-title = Thanh đường dẫn
|
||||||
zen-urlbar-header = Thiệt lập chung cho thanh đường dẫn
|
zen-urlbar-header = Thiết lập chung cho thanh đường dẫn
|
||||||
zen-urlbar-description = Tùy chỉnh thanh đường dẫn theo sở thích
|
zen-urlbar-description = Tùy chỉnh thanh đường dẫn theo sở thích
|
||||||
zen-urlbar-behavior-label = Hành vi thanh đường dẫn
|
zen-urlbar-behavior-label = Hành vi thanh đường dẫn
|
||||||
zen-urlbar-behavior-normal =
|
zen-urlbar-behavior-normal =
|
||||||
@@ -176,7 +176,7 @@ zen-key-quick-restart = Khởi động lại nhanh
|
|||||||
zen-window-new-shortcut = Cửa sổ mới
|
zen-window-new-shortcut = Cửa sổ mới
|
||||||
zen-tab-new-shortcut = Tab mới
|
zen-tab-new-shortcut = Tab mới
|
||||||
zen-key-redo = Hoàn tác
|
zen-key-redo = Hoàn tác
|
||||||
zen-restore-last-closed-tab-shortcut = Khôi phục lại tab gần nhất đã đóng
|
zen-restore-last-closed-tab-shortcut = Khôi phục lại thẻ gần nhất đã đóng
|
||||||
zen-location-open-shortcut = Mở đường dẫn
|
zen-location-open-shortcut = Mở đường dẫn
|
||||||
zen-location-open-shortcut-alt = Mở tại (Alt)
|
zen-location-open-shortcut-alt = Mở tại (Alt)
|
||||||
zen-key-undo-close-window = Mở lại cửa sổ đã đóng
|
zen-key-undo-close-window = Mở lại cửa sổ đã đóng
|
||||||
|
@@ -3,9 +3,9 @@ zen-folders-search-placeholder =
|
|||||||
zen-folders-panel-rename-folder =
|
zen-folders-panel-rename-folder =
|
||||||
.label = Đổi tên thư mục thẻ
|
.label = Đổi tên thư mục thẻ
|
||||||
zen-folders-panel-unpack-folder =
|
zen-folders-panel-unpack-folder =
|
||||||
.label = Unpack Folder
|
.label = Giải thoát thư mục
|
||||||
zen-folders-new-subfolder =
|
zen-folders-new-subfolder =
|
||||||
.label = New Subfolder
|
.label = Tạo thư mục con
|
||||||
zen-folders-panel-delete-folder =
|
zen-folders-panel-delete-folder =
|
||||||
.label = Xóa thư mục thẻ
|
.label = Xóa thư mục thẻ
|
||||||
zen-folders-panel-convert-folder-to-space =
|
zen-folders-panel-convert-folder-to-space =
|
||||||
@@ -15,7 +15,7 @@ zen-folders-panel-change-folder-space =
|
|||||||
zen-folders-panel-change-icon-folder =
|
zen-folders-panel-change-icon-folder =
|
||||||
.label = Đổi biểu tượng thư mục thẻ
|
.label = Đổi biểu tượng thư mục thẻ
|
||||||
zen-folders-unload-all-tooltip =
|
zen-folders-unload-all-tooltip =
|
||||||
.tooltiptext = Unload all tabs in this folder
|
.tooltiptext = Tải lại tất cả các thẻ trong thư mục
|
||||||
zen-folders-unload-folder =
|
zen-folders-unload-folder =
|
||||||
.label = Unload All Tabs
|
.label = Tải lại tất cả các thẻ
|
||||||
zen-folders-search-no-results = Không có thẻ nào trùng với tìm kiếm 🤔
|
zen-folders-search-no-results = Không có thẻ nào trùng với tìm kiếm 🤔
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Ẩn cả hai
|
.label = Ẩn cả hai
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = Thư mực thẻ mới
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Mở rộng thanh bên
|
.label = Mở rộng thanh bên
|
||||||
|
@@ -48,4 +48,4 @@ zen-workspace-creation-profile = Hồ sơ
|
|||||||
zen-workspace-creation-header = Tạo không gian làm việc
|
zen-workspace-creation-header = Tạo không gian làm việc
|
||||||
zen-workspace-creation-label = Không gian làm việc sẽ là nơi để bạn chứa các trang web và lượt truy cập của bạn.
|
zen-workspace-creation-label = Không gian làm việc sẽ là nơi để bạn chứa các trang web và lượt truy cập của bạn.
|
||||||
zen-workspaces-delete-workspace-title = Delete Workspace?
|
zen-workspaces-delete-workspace-title = Delete Workspace?
|
||||||
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
|
zen-workspaces-delete-workspace-body = Bạn có chắc là bạn muốn xóa { $name }? Thao tác này sẽ không được hoàn lại.
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = 两者都隐藏
|
.label = 两者都隐藏
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = 新建文件夹
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = 展开侧边栏
|
.label = 展开侧边栏
|
||||||
|
@@ -15,7 +15,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = 兩者皆隱藏
|
.label = 兩者皆隱藏
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New folder
|
.label = New Folder
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = 展開側邊欄
|
.label = 展開側邊欄
|
||||||
|
@@ -24,5 +24,4 @@
|
|||||||
|
|
||||||
- name: zen.injections.match-urls
|
- name: zen.injections.match-urls
|
||||||
value: 'http://localhost/*'
|
value: 'http://localhost/*'
|
||||||
locked: true
|
|
||||||
condition: '!defined(MOZILLA_OFFICIAL)'
|
condition: '!defined(MOZILLA_OFFICIAL)'
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
value: true
|
value: true
|
||||||
|
|
||||||
- name: browser.urlbar.maxRichResults
|
- name: browser.urlbar.maxRichResults
|
||||||
value: 5
|
value: 6
|
||||||
|
|
||||||
# Enable private suggestions
|
# Enable private suggestions
|
||||||
- name: browser.search.suggest.enabled
|
- name: browser.search.suggest.enabled
|
||||||
|
@@ -38,7 +38,6 @@
|
|||||||
<menuseparator />
|
<menuseparator />
|
||||||
<menuitem id="context_zenFolderUnloadAll" data-l10n-id="zen-folders-unload-folder"/>
|
<menuitem id="context_zenFolderUnloadAll" data-l10n-id="zen-folders-unload-folder"/>
|
||||||
<menuitem id="context_zenFolderNewSubfolder" data-l10n-id="zen-folders-new-subfolder"/>
|
<menuitem id="context_zenFolderNewSubfolder" data-l10n-id="zen-folders-new-subfolder"/>
|
||||||
<menuitem id="context_zenFolderUnpack" data-l10n-id="zen-folders-panel-unpack-folder"/>
|
|
||||||
<menuseparator />
|
<menuseparator />
|
||||||
<menu id="context_zenChangeFolderSpace"
|
<menu id="context_zenChangeFolderSpace"
|
||||||
data-l10n-id="zen-folders-panel-change-folder-space">
|
data-l10n-id="zen-folders-panel-change-folder-space">
|
||||||
@@ -46,5 +45,6 @@
|
|||||||
</menu>
|
</menu>
|
||||||
<menuitem id="context_zenFolderToSpace" data-l10n-id="zen-folders-panel-convert-folder-to-space" />
|
<menuitem id="context_zenFolderToSpace" data-l10n-id="zen-folders-panel-convert-folder-to-space" />
|
||||||
<menuseparator />
|
<menuseparator />
|
||||||
|
<menuitem id="context_zenFolderUnpack" data-l10n-id="zen-folders-panel-unpack-folder"/>
|
||||||
<menuitem id="context_zenFolderDelete" data-l10n-id="zen-folders-panel-delete-folder"/>
|
<menuitem id="context_zenFolderDelete" data-l10n-id="zen-folders-panel-delete-folder"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
||||||
index f9129fb171362e81369056923bf25acbb87d2ad8..924bcd2cd66a5dfcf9c45aac0c63cd0257c21a2c 100644
|
index 66ce978d9b022285dea67fdb75b3c005adb05d9b..db61587570ca18403a82ea6796a756d403cc207e 100644
|
||||||
--- a/browser/components/preferences/main.inc.xhtml
|
--- a/browser/components/preferences/main.inc.xhtml
|
||||||
+++ b/browser/components/preferences/main.inc.xhtml
|
+++ b/browser/components/preferences/main.inc.xhtml
|
||||||
@@ -29,6 +29,9 @@
|
@@ -29,6 +29,9 @@
|
||||||
@@ -12,23 +12,17 @@ index f9129fb171362e81369056923bf25acbb87d2ad8..924bcd2cd66a5dfcf9c45aac0c63cd02
|
|||||||
#ifdef XP_WIN
|
#ifdef XP_WIN
|
||||||
<hbox id="windowsLaunchOnLoginBox" align="center" hidden="true">
|
<hbox id="windowsLaunchOnLoginBox" align="center" hidden="true">
|
||||||
<checkbox id="windowsLaunchOnLogin"
|
<checkbox id="windowsLaunchOnLogin"
|
||||||
@@ -186,6 +189,7 @@
|
@@ -188,7 +191,8 @@
|
||||||
</groupbox>
|
|
||||||
|
|
||||||
<!-- Browser layout -->
|
<!-- Browser layout -->
|
||||||
+#if 0
|
|
||||||
<groupbox data-category="paneGeneral"
|
<groupbox data-category="paneGeneral"
|
||||||
data-subcategory="layout"
|
data-subcategory="layout"
|
||||||
hidden="true">
|
- hidden="true">
|
||||||
@@ -201,6 +205,7 @@
|
+ hidden="true"
|
||||||
preference="sidebar.revamp"/>
|
+ style="display: none !important;">
|
||||||
<description class="indent" data-l10n-id="browser-layout-show-sidebar-desc"></description>
|
<label><html:h2 data-l10n-id="browser-layout-header"/></label>
|
||||||
</groupbox>
|
<radiogroup id="browserLayoutRadioGroup" preference="sidebar.verticalTabs">
|
||||||
+#endif
|
<radio id="browserLayoutHorizontalTabs" data-l10n-id="browser-layout-horizontal-tabs" value="false"/>
|
||||||
|
@@ -419,6 +423,7 @@
|
||||||
<hbox id="languageAndAppearanceCategory"
|
|
||||||
class="subcategory"
|
|
||||||
@@ -421,6 +426,7 @@
|
|
||||||
languages-customize-add.label,
|
languages-customize-add.label,
|
||||||
" />
|
" />
|
||||||
</hbox>
|
</hbox>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
index e954a8df26ed84731b08b151f90a758206946582..5b8013c71c6b50579668d16a5f7d5a82b5d43e4d 100644
|
index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c292756c3 100644
|
||||||
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
@@ -2135,7 +2135,6 @@ var SessionStoreInternal = {
|
@@ -2135,7 +2135,6 @@ var SessionStoreInternal = {
|
||||||
@@ -143,3 +143,12 @@ index e954a8df26ed84731b08b151f90a758206946582..5b8013c71c6b50579668d16a5f7d5a82
|
|||||||
|
|
||||||
if (tabData.pinned) {
|
if (tabData.pinned) {
|
||||||
tabbrowser.pinTab(tab);
|
tabbrowser.pinTab(tab);
|
||||||
|
@@ -7266,7 +7289,7 @@ var SessionStoreInternal = {
|
||||||
|
|
||||||
|
let groupsToSave = new Map();
|
||||||
|
for (let tIndex = 0; tIndex < window.tabs.length; ) {
|
||||||
|
- if (window.tabs[tIndex].pinned) {
|
||||||
|
+ if (window.tabs[tIndex].pinned && false) {
|
||||||
|
// Adjust window.selected
|
||||||
|
if (tIndex + 1 < window.selected) {
|
||||||
|
window.selected -= 1;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc58e2af77 100644
|
index d80a66a01002e78a9c65545d08fe786328ddf124..c5c079ac5218f051407b27c6edbd4ba6fe685e62 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
@@ -422,15 +422,60 @@
|
@@ -422,15 +422,60 @@
|
||||||
@@ -391,10 +391,10 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
+ gZenWorkspaces._initialTab._shouldRemove = true;
|
+ gZenWorkspaces._initialTab._shouldRemove = true;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ }
|
}
|
||||||
+ else {
|
+ else {
|
||||||
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
|
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
|
||||||
}
|
+ }
|
||||||
+ this._hasAlreadyInitializedZenSessionStore = true;
|
+ this._hasAlreadyInitializedZenSessionStore = true;
|
||||||
|
|
||||||
if (tabs.length > 1 || !tabs[0].selected) {
|
if (tabs.length > 1 || !tabs[0].selected) {
|
||||||
@@ -623,11 +623,13 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -6049,7 +6181,7 @@
|
@@ -6048,8 +6180,8 @@
|
||||||
|
}
|
||||||
|
|
||||||
// Don't allow mixing pinned and unpinned tabs.
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
if (this.isTab(element) && element.pinned) {
|
- if (this.isTab(element) && element.pinned) {
|
||||||
- tabIndex = Math.min(tabIndex, this.pinnedTabCount - 1);
|
- tabIndex = Math.min(tabIndex, this.pinnedTabCount - 1);
|
||||||
|
+ if (element.pinned) {
|
||||||
+ tabIndex = element.hasAttribute('zen-essential') ? Math.min(tabIndex, this._numZenEssentials - 1) : Math.min(Math.max(tabIndex, this._numZenEssentials), this.pinnedTabCount - 1);
|
+ tabIndex = element.hasAttribute('zen-essential') ? Math.min(tabIndex, this._numZenEssentials - 1) : Math.min(Math.max(tabIndex, this._numZenEssentials), this.pinnedTabCount - 1);
|
||||||
} else {
|
} else {
|
||||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||||
@@ -651,7 +653,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||||
neighbor.after(element);
|
neighbor.after(element);
|
||||||
} else {
|
} else {
|
||||||
@@ -6136,22 +6274,23 @@
|
@@ -6136,23 +6274,28 @@
|
||||||
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
|
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
|
||||||
if (this.isTabGroupLabel(targetElement)) {
|
if (this.isTabGroupLabel(targetElement)) {
|
||||||
targetElement = targetElement.group;
|
targetElement = targetElement.group;
|
||||||
@@ -679,9 +681,14 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
- targetElement = this.tabs[this.pinnedTabCount - 1];
|
- targetElement = this.tabs[this.pinnedTabCount - 1];
|
||||||
+ targetElement = this.tabsWithoutGlance[this.pinnedTabCount - 1];
|
+ targetElement = this.tabsWithoutGlance[this.pinnedTabCount - 1];
|
||||||
moveBefore = false;
|
moveBefore = false;
|
||||||
|
+ if (!this.visibleTabs.includes(targetElement)) {
|
||||||
|
+ targetElement = gZenWorkspaces.pinnedTabsContainer.querySelector('.pinned-tabs-container-separator')
|
||||||
|
+ moveBefore = true;
|
||||||
|
+ }
|
||||||
} else if (!element.pinned && targetElement && targetElement.pinned) {
|
} else if (!element.pinned && targetElement && targetElement.pinned) {
|
||||||
// If the caller asks to move an unpinned element next to a pinned
|
// If the caller asks to move an unpinned element next to a pinned
|
||||||
@@ -6165,14 +6304,34 @@
|
// tab, move the unpinned element to be the first unpinned element
|
||||||
|
@@ -6165,14 +6308,34 @@
|
||||||
// move the tab group right before the first unpinned tab.
|
// move the tab group right before the first unpinned tab.
|
||||||
// 4. Moving a tab group and the first unpinned tab is grouped:
|
// 4. Moving a tab group and the first unpinned tab is grouped:
|
||||||
// move the tab group right before the first unpinned tab's tab group.
|
// move the tab group right before the first unpinned tab's tab group.
|
||||||
@@ -717,7 +724,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
element.pinned
|
element.pinned
|
||||||
? this.tabContainer.pinnedTabsContainer
|
? this.tabContainer.pinnedTabsContainer
|
||||||
: this.tabContainer;
|
: this.tabContainer;
|
||||||
@@ -6181,7 +6340,7 @@
|
@@ -6181,7 +6344,7 @@
|
||||||
element,
|
element,
|
||||||
() => {
|
() => {
|
||||||
if (moveBefore) {
|
if (moveBefore) {
|
||||||
@@ -726,7 +733,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
} else if (targetElement) {
|
} else if (targetElement) {
|
||||||
targetElement.after(element);
|
targetElement.after(element);
|
||||||
} else {
|
} else {
|
||||||
@@ -6227,10 +6386,10 @@
|
@@ -6227,10 +6390,10 @@
|
||||||
* @param {TabMetricsContext} [metricsContext]
|
* @param {TabMetricsContext} [metricsContext]
|
||||||
*/
|
*/
|
||||||
moveTabToGroup(aTab, aGroup, metricsContext) {
|
moveTabToGroup(aTab, aGroup, metricsContext) {
|
||||||
@@ -739,7 +746,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||||
@@ -6324,6 +6483,10 @@
|
@@ -6324,6 +6487,10 @@
|
||||||
|
|
||||||
moveActionCallback();
|
moveActionCallback();
|
||||||
|
|
||||||
@@ -750,7 +757,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
// Clear tabs cache after moving nodes because the order of tabs may have
|
// Clear tabs cache after moving nodes because the order of tabs may have
|
||||||
// changed.
|
// changed.
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
@@ -7221,7 +7384,7 @@
|
@@ -7221,7 +7388,7 @@
|
||||||
// preventDefault(). It will still raise the window if appropriate.
|
// preventDefault(). It will still raise the window if appropriate.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -759,7 +766,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
window.focus();
|
window.focus();
|
||||||
aEvent.preventDefault();
|
aEvent.preventDefault();
|
||||||
break;
|
break;
|
||||||
@@ -8166,6 +8329,7 @@
|
@@ -8166,6 +8333,7 @@
|
||||||
aWebProgress.isTopLevel
|
aWebProgress.isTopLevel
|
||||||
) {
|
) {
|
||||||
this.mTab.setAttribute("busy", "true");
|
this.mTab.setAttribute("busy", "true");
|
||||||
@@ -767,7 +774,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||||
}
|
}
|
||||||
@@ -9157,7 +9321,7 @@ var TabContextMenu = {
|
@@ -9157,7 +9325,7 @@ var TabContextMenu = {
|
||||||
);
|
);
|
||||||
contextUnpinSelectedTabs.hidden =
|
contextUnpinSelectedTabs.hidden =
|
||||||
!this.contextTab.pinned || !this.multiselected;
|
!this.contextTab.pinned || !this.multiselected;
|
||||||
@@ -776,7 +783,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc
|
|||||||
// Build Ask Chat items
|
// Build Ask Chat items
|
||||||
TabContextMenu.GenAI.buildTabMenu(
|
TabContextMenu.GenAI.buildTabMenu(
|
||||||
document.getElementById("context_askChat"),
|
document.getElementById("context_askChat"),
|
||||||
@@ -9476,6 +9640,7 @@ var TabContextMenu = {
|
@@ -9476,6 +9644,7 @@ var TabContextMenu = {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
|
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
|
||||||
index caea196b22b4689f55780a528661d87b52f4e728..c107c803d0820a209c0859745dcc8370294eb7b2 100644
|
index caea196b22b4689f55780a528661d87b52f4e728..729848f1d3856bc4a5225e1a83cc10ef22819ca1 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabgroup.js
|
--- a/browser/components/tabbrowser/content/tabgroup.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabgroup.js
|
+++ b/browser/components/tabbrowser/content/tabgroup.js
|
||||||
@@ -13,10 +13,12 @@
|
@@ -13,10 +13,12 @@
|
||||||
@@ -92,7 +92,17 @@ index caea196b22b4689f55780a528661d87b52f4e728..c107c803d0820a209c0859745dcc8370
|
|||||||
}
|
}
|
||||||
|
|
||||||
get color() {
|
get color() {
|
||||||
@@ -338,12 +356,61 @@
|
@@ -285,6 +303,9 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
set collapsed(val) {
|
||||||
|
+ if (this.hasAttribute("split-view-group")) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
if (!!val == this.collapsed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -338,12 +359,61 @@
|
||||||
tabGroupName,
|
tabGroupName,
|
||||||
})
|
})
|
||||||
.then(result => {
|
.then(result => {
|
||||||
@@ -156,7 +166,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..c107c803d0820a209c0859745dcc8370
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -373,7 +440,7 @@
|
@@ -373,7 +443,7 @@
|
||||||
*/
|
*/
|
||||||
addTabs(tabs, metricsContext) {
|
addTabs(tabs, metricsContext) {
|
||||||
for (let tab of tabs) {
|
for (let tab of tabs) {
|
||||||
@@ -165,7 +175,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..c107c803d0820a209c0859745dcc8370
|
|||||||
tab.ownerGlobal.gBrowser.unpinTab(tab);
|
tab.ownerGlobal.gBrowser.unpinTab(tab);
|
||||||
}
|
}
|
||||||
let tabToMove =
|
let tabToMove =
|
||||||
@@ -437,7 +504,7 @@
|
@@ -437,7 +507,7 @@
|
||||||
*/
|
*/
|
||||||
on_click(event) {
|
on_click(event) {
|
||||||
let isToggleElement =
|
let isToggleElement =
|
||||||
@@ -174,7 +184,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..c107c803d0820a209c0859745dcc8370
|
|||||||
event.target === this.#overflowCountLabel;
|
event.target === this.#overflowCountLabel;
|
||||||
if (isToggleElement && event.button === 0) {
|
if (isToggleElement && event.button === 0) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
@@ -470,5 +537,6 @@
|
@@ -470,5 +540,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||||
index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d075b9cf7 100644
|
index e2b27db6c13278defea3bcc7606a8da54e7d001c..016d58789918235cc3a41f33ee402c2c3b65f80b 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabs.js
|
--- a/browser/components/tabbrowser/content/tabs.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||||
@@ -332,7 +332,7 @@
|
@@ -332,7 +332,7 @@
|
||||||
@@ -28,20 +28,16 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
let tabsPerRow = 0;
|
let tabsPerRow = 0;
|
||||||
let position = RTL_UI
|
let position = RTL_UI
|
||||||
? window.windowUtils.getBoundsWithoutFlushing(
|
? window.windowUtils.getBoundsWithoutFlushing(
|
||||||
@@ -772,9 +771,10 @@
|
@@ -851,7 +850,7 @@
|
||||||
|
let dropEffect = this.getDropEffectForTabDrag(event);
|
||||||
|
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
||||||
|
let collapseTabGroupDuringDrag =
|
||||||
|
- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed;
|
||||||
|
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
|
||||||
|
|
||||||
if (tab.multiselected) {
|
tab._dragData = {
|
||||||
this.#moveTogetherSelectedTabs(tab);
|
offsetX: this.verticalMode
|
||||||
- } else if (isTabGroupLabel(tab) && !tab.group.collapsed) {
|
@@ -861,7 +860,7 @@
|
||||||
- tab.group.collapsed = true;
|
|
||||||
+ } else if (isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"))) {
|
|
||||||
+ tab.group.collapsed = !tab.group.hasAttribute("split-view-group");
|
|
||||||
expandGroupOnDrop = true;
|
|
||||||
+ gZenFolders.collapseVisibleTab(tab.group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -872,7 +872,7 @@
|
|
||||||
? event.screenY - window.screenY - tabOffset
|
? event.screenY - window.screenY - tabOffset
|
||||||
: event.screenY - window.screenY,
|
: event.screenY - window.screenY,
|
||||||
scrollPos:
|
scrollPos:
|
||||||
@@ -50,7 +46,15 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
? this.pinnedTabsContainer.scrollPosition
|
? this.pinnedTabsContainer.scrollPosition
|
||||||
: this.arrowScrollbox.scrollPosition,
|
: this.arrowScrollbox.scrollPosition,
|
||||||
screenX: event.screenX,
|
screenX: event.screenX,
|
||||||
@@ -933,6 +933,10 @@
|
@@ -886,6 +885,7 @@
|
||||||
|
if (tab.multiselected) {
|
||||||
|
this.#moveTogetherSelectedTabs(tab);
|
||||||
|
} else if (collapseTabGroupDuringDrag) {
|
||||||
|
+ gZenFolders.collapseVisibleTab(tab.group);
|
||||||
|
tab.group.collapsed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -932,6 +932,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||||
@@ -61,7 +65,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
if (
|
if (
|
||||||
(dropEffect == "move" || dropEffect == "copy") &&
|
(dropEffect == "move" || dropEffect == "copy") &&
|
||||||
document == draggedTab.ownerDocument &&
|
document == draggedTab.ownerDocument &&
|
||||||
@@ -1060,7 +1064,9 @@
|
@@ -1059,7 +1063,9 @@
|
||||||
isTabGroupLabel(draggedTab) &&
|
isTabGroupLabel(draggedTab) &&
|
||||||
draggedTab._dragData?.expandGroupOnDrop
|
draggedTab._dragData?.expandGroupOnDrop
|
||||||
) {
|
) {
|
||||||
@@ -72,7 +76,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1096,6 +1102,18 @@
|
@@ -1095,6 +1101,18 @@
|
||||||
|
|
||||||
this._tabDropIndicator.hidden = true;
|
this._tabDropIndicator.hidden = true;
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
@@ -91,7 +95,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
if (draggedTab && dropEffect == "copy") {
|
if (draggedTab && dropEffect == "copy") {
|
||||||
let duplicatedDraggedTab;
|
let duplicatedDraggedTab;
|
||||||
let duplicatedTabs = [];
|
let duplicatedTabs = [];
|
||||||
@@ -1120,8 +1138,9 @@
|
@@ -1119,8 +1137,9 @@
|
||||||
let translateOffsetY = oldTranslateY % tabHeight;
|
let translateOffsetY = oldTranslateY % tabHeight;
|
||||||
let newTranslateX = oldTranslateX - translateOffsetX;
|
let newTranslateX = oldTranslateX - translateOffsetX;
|
||||||
let newTranslateY = oldTranslateY - translateOffsetY;
|
let newTranslateY = oldTranslateY - translateOffsetY;
|
||||||
@@ -103,7 +107,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
||||||
// Update both translate axis for pinned vertical expanded tabs
|
// Update both translate axis for pinned vertical expanded tabs
|
||||||
@@ -1137,8 +1156,8 @@
|
@@ -1136,8 +1155,8 @@
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let tabs = this.ariaFocusableItems.slice(
|
let tabs = this.ariaFocusableItems.slice(
|
||||||
@@ -114,7 +118,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
);
|
);
|
||||||
let size = this.verticalMode ? "height" : "width";
|
let size = this.verticalMode ? "height" : "width";
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||||
@@ -1179,11 +1198,9 @@
|
@@ -1178,11 +1197,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let shouldPin =
|
let shouldPin =
|
||||||
@@ -128,7 +132,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
let shouldTranslate =
|
let shouldTranslate =
|
||||||
!gReduceMotion &&
|
!gReduceMotion &&
|
||||||
!shouldCreateGroupOnDrop &&
|
!shouldCreateGroupOnDrop &&
|
||||||
@@ -1196,6 +1213,7 @@
|
@@ -1195,6 +1212,7 @@
|
||||||
(oldTranslateY && oldTranslateY != newTranslateY);
|
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||||
} else if (this.verticalMode) {
|
} else if (this.verticalMode) {
|
||||||
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
||||||
@@ -136,7 +140,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
} else {
|
} else {
|
||||||
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||||
}
|
}
|
||||||
@@ -1379,6 +1397,7 @@
|
@@ -1376,6 +1394,7 @@
|
||||||
|
|
||||||
let nextItem = this.ariaFocusableItems[newIndex];
|
let nextItem = this.ariaFocusableItems[newIndex];
|
||||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||||
@@ -144,7 +148,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
gBrowser.loadTabs(urls, {
|
gBrowser.loadTabs(urls, {
|
||||||
inBackground,
|
inBackground,
|
||||||
replace,
|
replace,
|
||||||
@@ -1411,6 +1430,17 @@
|
@@ -1408,6 +1427,17 @@
|
||||||
|
|
||||||
this.finishMoveTogetherSelectedTabs(draggedTab);
|
this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||||
this.finishAnimateTabMove();
|
this.finishAnimateTabMove();
|
||||||
@@ -159,10 +163,10 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
this.#keepTabSizeLocked = false;
|
|
||||||
this._unlockTabSizing();
|
|
||||||
this.#expandGroupOnDrop(draggedTab);
|
this.#expandGroupOnDrop(draggedTab);
|
||||||
@@ -1582,7 +1612,6 @@
|
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
||||||
|
|
||||||
|
@@ -1577,7 +1607,6 @@
|
||||||
|
|
||||||
this.toggleAttribute("overflow", true);
|
this.toggleAttribute("overflow", true);
|
||||||
this._updateCloseButtons();
|
this._updateCloseButtons();
|
||||||
@@ -170,7 +174,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
document
|
document
|
||||||
.getElementById("tab-preview-panel")
|
.getElementById("tab-preview-panel")
|
||||||
@@ -1640,7 +1669,7 @@
|
@@ -1635,7 +1664,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get newTabButton() {
|
get newTabButton() {
|
||||||
@@ -179,7 +183,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
|
|
||||||
get verticalMode() {
|
get verticalMode() {
|
||||||
@@ -1656,6 +1685,7 @@
|
@@ -1651,6 +1680,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get overflowing() {
|
get overflowing() {
|
||||||
@@ -187,7 +191,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
return this.hasAttribute("overflow");
|
return this.hasAttribute("overflow");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1664,26 +1694,54 @@
|
@@ -1659,26 +1689,54 @@
|
||||||
if (this.#allTabs) {
|
if (this.#allTabs) {
|
||||||
return this.#allTabs;
|
return this.#allTabs;
|
||||||
}
|
}
|
||||||
@@ -249,7 +253,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1750,32 +1808,27 @@
|
@@ -1745,32 +1803,27 @@
|
||||||
|
|
||||||
let elementIndex = 0;
|
let elementIndex = 0;
|
||||||
|
|
||||||
@@ -291,7 +295,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
return this.#focusableItems;
|
return this.#focusableItems;
|
||||||
}
|
}
|
||||||
@@ -1783,6 +1836,7 @@
|
@@ -1778,6 +1831,7 @@
|
||||||
_invalidateCachedTabs() {
|
_invalidateCachedTabs() {
|
||||||
this.#allTabs = null;
|
this.#allTabs = null;
|
||||||
this._invalidateCachedVisibleTabs();
|
this._invalidateCachedVisibleTabs();
|
||||||
@@ -299,7 +303,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
|
|
||||||
_invalidateCachedVisibleTabs() {
|
_invalidateCachedVisibleTabs() {
|
||||||
@@ -1798,8 +1852,8 @@
|
@@ -1793,8 +1847,8 @@
|
||||||
#isContainerVerticalPinnedGrid(tab) {
|
#isContainerVerticalPinnedGrid(tab) {
|
||||||
return (
|
return (
|
||||||
this.verticalMode &&
|
this.verticalMode &&
|
||||||
@@ -310,7 +314,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
!this.expandOnHover
|
!this.expandOnHover
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1815,7 +1869,7 @@
|
@@ -1810,7 +1864,7 @@
|
||||||
|
|
||||||
if (node == null) {
|
if (node == null) {
|
||||||
// We have a container for non-tab elements at the end of the scrollbox.
|
// We have a container for non-tab elements at the end of the scrollbox.
|
||||||
@@ -319,7 +323,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
|
|
||||||
node.before(tab);
|
node.before(tab);
|
||||||
@@ -1910,7 +1964,7 @@
|
@@ -1905,7 +1959,7 @@
|
||||||
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
||||||
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
||||||
// Attach the long click popup to all of them.
|
// Attach the long click popup to all of them.
|
||||||
@@ -328,7 +332,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
const newTab2 = this.newTabButton;
|
const newTab2 = this.newTabButton;
|
||||||
const newTabVertical = document.getElementById(
|
const newTabVertical = document.getElementById(
|
||||||
"vertical-tabs-newtab-button"
|
"vertical-tabs-newtab-button"
|
||||||
@@ -2005,10 +2059,12 @@
|
@@ -2000,10 +2054,12 @@
|
||||||
|
|
||||||
_handleTabSelect(aInstant) {
|
_handleTabSelect(aInstant) {
|
||||||
let selectedTab = this.selectedItem;
|
let selectedTab = this.selectedItem;
|
||||||
@@ -341,7 +345,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
selectedTab._notselectedsinceload = false;
|
selectedTab._notselectedsinceload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2152,6 +2208,16 @@
|
@@ -2140,6 +2196,16 @@
|
||||||
when the tab is first selected to be dragged.
|
when the tab is first selected to be dragged.
|
||||||
*/
|
*/
|
||||||
#updateTabStylesOnDrag(tab) {
|
#updateTabStylesOnDrag(tab) {
|
||||||
@@ -358,7 +362,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
let isPinned = tab.pinned;
|
let isPinned = tab.pinned;
|
||||||
let numPinned = gBrowser.pinnedTabCount;
|
let numPinned = gBrowser.pinnedTabCount;
|
||||||
let allTabs = this.ariaFocusableItems;
|
let allTabs = this.ariaFocusableItems;
|
||||||
@@ -2385,7 +2451,7 @@
|
@@ -2398,7 +2464,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -367,7 +371,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
let directionX = screenX > dragData.animLastScreenX;
|
let directionX = screenX > dragData.animLastScreenX;
|
||||||
let directionY = screenY > dragData.animLastScreenY;
|
let directionY = screenY > dragData.animLastScreenY;
|
||||||
@@ -2394,6 +2460,8 @@
|
@@ -2407,6 +2473,8 @@
|
||||||
|
|
||||||
let { width: tabWidth, height: tabHeight } =
|
let { width: tabWidth, height: tabHeight } =
|
||||||
draggedTab.getBoundingClientRect();
|
draggedTab.getBoundingClientRect();
|
||||||
@@ -376,7 +380,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
let shiftSizeX = tabWidth * movingTabs.length;
|
let shiftSizeX = tabWidth * movingTabs.length;
|
||||||
let shiftSizeY = tabHeight;
|
let shiftSizeY = tabHeight;
|
||||||
dragData.tabWidth = tabWidth;
|
dragData.tabWidth = tabWidth;
|
||||||
@@ -2430,8 +2498,8 @@
|
@@ -2443,8 +2511,8 @@
|
||||||
let lastBoundX =
|
let lastBoundX =
|
||||||
lastTabInRow.screenX +
|
lastTabInRow.screenX +
|
||||||
lastTabInRow.getBoundingClientRect().width -
|
lastTabInRow.getBoundingClientRect().width -
|
||||||
@@ -387,7 +391,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
||||||
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
||||||
|
|
||||||
@@ -2547,7 +2615,7 @@
|
@@ -2560,7 +2628,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
dragData.animDropElementIndex = newIndex;
|
dragData.animDropElementIndex = newIndex;
|
||||||
@@ -396,7 +400,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
dragData.dropBefore = newIndex < tabs.length;
|
dragData.dropBefore = newIndex < tabs.length;
|
||||||
|
|
||||||
// Shift background tabs to leave a gap where the dragged tab
|
// Shift background tabs to leave a gap where the dragged tab
|
||||||
@@ -2580,13 +2648,18 @@
|
@@ -2593,13 +2661,18 @@
|
||||||
|
|
||||||
this.#clearDragOverCreateGroupTimer();
|
this.#clearDragOverCreateGroupTimer();
|
||||||
|
|
||||||
@@ -419,7 +423,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
if (this.#rtlMode) {
|
if (this.#rtlMode) {
|
||||||
tabs.reverse();
|
tabs.reverse();
|
||||||
@@ -2597,7 +2670,7 @@
|
@@ -2610,7 +2683,7 @@
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||||
let size = this.verticalMode ? "height" : "width";
|
let size = this.verticalMode ? "height" : "width";
|
||||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
||||||
@@ -428,7 +432,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
let translateX = event.screenX - dragData.screenX;
|
let translateX = event.screenX - dragData.screenX;
|
||||||
let translateY = event.screenY - dragData.screenY;
|
let translateY = event.screenY - dragData.screenY;
|
||||||
|
|
||||||
@@ -2607,10 +2680,16 @@
|
@@ -2620,10 +2693,16 @@
|
||||||
dragData.translateY = translateY;
|
dragData.translateY = translateY;
|
||||||
|
|
||||||
// Move the dragged tab based on the mouse position.
|
// Move the dragged tab based on the mouse position.
|
||||||
@@ -447,7 +451,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||||
@@ -2619,6 +2698,7 @@
|
@@ -2632,6 +2711,7 @@
|
||||||
// Constrain the range over which the moving tabs can move between the first and last tab
|
// Constrain the range over which the moving tabs can move between the first and last tab
|
||||||
let firstBound = firstTab[screenAxis] - firstMovingTabScreen;
|
let firstBound = firstTab[screenAxis] - firstMovingTabScreen;
|
||||||
let lastBound = endEdge(lastTab) - lastMovingTabScreen;
|
let lastBound = endEdge(lastTab) - lastMovingTabScreen;
|
||||||
@@ -455,7 +459,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
||||||
if (
|
if (
|
||||||
@@ -2636,6 +2716,9 @@
|
@@ -2649,6 +2729,9 @@
|
||||||
// Shift the `.tab-group-label-container` to shift the label element.
|
// Shift the `.tab-group-label-container` to shift the label element.
|
||||||
item = item.parentElement;
|
item = item.parentElement;
|
||||||
}
|
}
|
||||||
@@ -465,7 +469,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
item.style.transform = `${translateAxis}(${translate}px)`;
|
item.style.transform = `${translateAxis}(${translate}px)`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2773,6 +2856,9 @@
|
@@ -2786,6 +2869,9 @@
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let element = tabs[mid];
|
let element = tabs[mid];
|
||||||
@@ -475,7 +479,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
let elementForSize = isTabGroupLabel(element)
|
let elementForSize = isTabGroupLabel(element)
|
||||||
? element.parentElement
|
? element.parentElement
|
||||||
: element;
|
: element;
|
||||||
@@ -2792,6 +2878,8 @@
|
@@ -2805,6 +2891,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
let dropElement = getOverlappedElement();
|
let dropElement = getOverlappedElement();
|
||||||
@@ -484,7 +488,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
let newDropElementIndex;
|
let newDropElementIndex;
|
||||||
if (dropElement) {
|
if (dropElement) {
|
||||||
@@ -2856,7 +2944,10 @@
|
@@ -2869,7 +2957,10 @@
|
||||||
let shouldCreateGroupOnDrop;
|
let shouldCreateGroupOnDrop;
|
||||||
let dropBefore;
|
let dropBefore;
|
||||||
if (dropElement) {
|
if (dropElement) {
|
||||||
@@ -496,7 +500,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
? dropElement.parentElement
|
? dropElement.parentElement
|
||||||
: dropElement;
|
: dropElement;
|
||||||
|
|
||||||
@@ -2876,7 +2967,7 @@
|
@@ -2889,7 +2980,7 @@
|
||||||
? Services.prefs.getIntPref(
|
? Services.prefs.getIntPref(
|
||||||
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
||||||
) / 100
|
) / 100
|
||||||
@@ -505,7 +509,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
||||||
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
||||||
if (logicalForward && shouldMoveOver) {
|
if (logicalForward && shouldMoveOver) {
|
||||||
@@ -2908,44 +2999,21 @@
|
@@ -2921,44 +3012,21 @@
|
||||||
|
|
||||||
// If dragging a group over another group, don't make it look like it is
|
// If dragging a group over another group, don't make it look like it is
|
||||||
// possible to drop the dragged group inside the other group.
|
// possible to drop the dragged group inside the other group.
|
||||||
@@ -555,7 +559,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
// When dragging tab(s) over an ungrouped tab, signal to the user
|
// When dragging tab(s) over an ungrouped tab, signal to the user
|
||||||
// that dropping the tab(s) will create a new tab group.
|
// that dropping the tab(s) will create a new tab group.
|
||||||
shouldCreateGroupOnDrop =
|
shouldCreateGroupOnDrop =
|
||||||
@@ -2955,12 +3023,6 @@
|
@@ -2968,12 +3036,6 @@
|
||||||
overlapPercent > dragOverGroupingThreshold;
|
overlapPercent > dragOverGroupingThreshold;
|
||||||
|
|
||||||
if (shouldCreateGroupOnDrop) {
|
if (shouldCreateGroupOnDrop) {
|
||||||
@@ -568,7 +572,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
} else {
|
} else {
|
||||||
this.removeAttribute("movingtab-createGroup");
|
this.removeAttribute("movingtab-createGroup");
|
||||||
document
|
document
|
||||||
@@ -2987,19 +3049,14 @@
|
@@ -3000,19 +3062,14 @@
|
||||||
dropElement = dropElementGroup;
|
dropElement = dropElementGroup;
|
||||||
colorCode = undefined;
|
colorCode = undefined;
|
||||||
} else if (isTabGroupLabel(dropElement)) {
|
} else if (isTabGroupLabel(dropElement)) {
|
||||||
@@ -596,7 +600,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
this.#setDragOverGroupColor(colorCode);
|
this.#setDragOverGroupColor(colorCode);
|
||||||
this.toggleAttribute("movingtab-ungroup", !colorCode);
|
this.toggleAttribute("movingtab-ungroup", !colorCode);
|
||||||
@@ -3017,19 +3074,28 @@
|
@@ -3030,19 +3087,28 @@
|
||||||
dragData.dropElement = dropElement;
|
dragData.dropElement = dropElement;
|
||||||
dragData.dropBefore = dropBefore;
|
dragData.dropBefore = dropBefore;
|
||||||
dragData.animDropElementIndex = newDropElementIndex;
|
dragData.animDropElementIndex = newDropElementIndex;
|
||||||
@@ -627,7 +631,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
item.style.transform = transform;
|
item.style.transform = transform;
|
||||||
}
|
}
|
||||||
@@ -3082,12 +3148,14 @@
|
@@ -3095,12 +3161,14 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -644,7 +648,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
|
|
||||||
for (let item of this.ariaFocusableItems) {
|
for (let item of this.ariaFocusableItems) {
|
||||||
if (isTabGroupLabel(item)) {
|
if (isTabGroupLabel(item)) {
|
||||||
@@ -3095,6 +3163,18 @@
|
@@ -3108,6 +3176,18 @@
|
||||||
item = item.parentElement;
|
item = item.parentElement;
|
||||||
}
|
}
|
||||||
item.style.transform = "";
|
item.style.transform = "";
|
||||||
@@ -663,7 +667,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
item.removeAttribute("dragover-createGroup");
|
item.removeAttribute("dragover-createGroup");
|
||||||
}
|
}
|
||||||
this.removeAttribute("movingtab-createGroup");
|
this.removeAttribute("movingtab-createGroup");
|
||||||
@@ -3116,16 +3196,15 @@
|
@@ -3129,16 +3209,15 @@
|
||||||
tab.style.left = "";
|
tab.style.left = "";
|
||||||
tab.style.top = "";
|
tab.style.top = "";
|
||||||
tab.style.maxWidth = "";
|
tab.style.maxWidth = "";
|
||||||
@@ -682,7 +686,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
}
|
}
|
||||||
let periphery = draggedTabDocument.getElementById(
|
let periphery = draggedTabDocument.getElementById(
|
||||||
"tabbrowser-arrowscrollbox-periphery"
|
"tabbrowser-arrowscrollbox-periphery"
|
||||||
@@ -3198,7 +3277,7 @@
|
@@ -3211,7 +3290,7 @@
|
||||||
let postTransitionCleanup = () => {
|
let postTransitionCleanup = () => {
|
||||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||||
};
|
};
|
||||||
@@ -691,7 +695,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
postTransitionCleanup();
|
postTransitionCleanup();
|
||||||
} else {
|
} else {
|
||||||
let onTransitionEnd = transitionendEvent => {
|
let onTransitionEnd = transitionendEvent => {
|
||||||
@@ -3371,7 +3450,7 @@
|
@@ -3384,7 +3463,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_notifyBackgroundTab(aTab) {
|
_notifyBackgroundTab(aTab) {
|
||||||
@@ -700,7 +704,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3480,7 +3559,10 @@
|
@@ -3493,7 +3572,10 @@
|
||||||
#getDragTarget(event, { ignoreSides = false } = {}) {
|
#getDragTarget(event, { ignoreSides = false } = {}) {
|
||||||
let { target } = event;
|
let { target } = event;
|
||||||
while (target) {
|
while (target) {
|
||||||
@@ -712,7 +716,7 @@ index e47f735e4e4563c9b7537944628418d1478c068d..b6d52ef3179d66ecd7f06fd61a6bca6d
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
target = target.parentNode;
|
target = target.parentNode;
|
||||||
@@ -3497,6 +3579,9 @@
|
@@ -3510,6 +3592,9 @@
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,24 @@
|
|||||||
diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css
|
diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css
|
||||||
index ba7642c9264ac201fec7be1bd492bc778bb147a2..9e89735e8a0886183ae7ecf98e6ce08142bf3bbc 100644
|
index ba7642c9264ac201fec7be1bd492bc778bb147a2..f0e02bcc000f106e186b3123ada96b4cbf83b40f 100644
|
||||||
--- a/toolkit/content/xul.css
|
--- a/toolkit/content/xul.css
|
||||||
+++ b/toolkit/content/xul.css
|
+++ b/toolkit/content/xul.css
|
||||||
@@ -456,7 +456,8 @@ deck > *|*:not(:-moz-native-anonymous) {
|
@@ -401,6 +401,15 @@ tooltip {
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ border-radius: 16px !important;
|
||||||
|
+ border-top-left-radius: 4px !important;
|
||||||
|
+ border: 1px solid rgba(225, 225, 225, 0.15) !important;
|
||||||
|
+ padding: 5px 9px 6px 9px !important;
|
||||||
|
+ font-weight: 600 !important;
|
||||||
|
+ background: color-mix(in srgb, var(--zen-primary-color, white), black 80%) !important;
|
||||||
|
+ color: #f3f3f3 !important;
|
||||||
|
+ font-size: smaller !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******** tree ******/
|
||||||
|
@@ -456,7 +465,8 @@ deck > *|*:not(:-moz-native-anonymous) {
|
||||||
}
|
}
|
||||||
|
|
||||||
tabpanels > .deck-selected,
|
tabpanels > .deck-selected,
|
||||||
|
@@ -228,3 +228,19 @@ body > #confetti {
|
|||||||
linear-gradient(#fff 0 0);
|
linear-gradient(#fff 0 0);
|
||||||
mask-composite: exclude;
|
mask-composite: exclude;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Status panel */
|
||||||
|
|
||||||
|
#statuspanel {
|
||||||
|
padding: 4px 3px;
|
||||||
|
|
||||||
|
& > #statuspanel-label {
|
||||||
|
border-radius: 16px !important;
|
||||||
|
border: 1px solid rgba(225, 225, 225, 0.15) !important;
|
||||||
|
padding: 5px 9px 6px 9px !important;
|
||||||
|
font-weight: 600 !important;
|
||||||
|
background: color-mix(in srgb, var(--zen-primary-color), black 80%) !important;
|
||||||
|
color: #f3f3f3 !important;
|
||||||
|
font-size: smaller !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -139,6 +139,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
rename() {
|
rename() {
|
||||||
|
if (!document.documentElement.hasAttribute('zen-sidebar-expanded')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
gZenVerticalTabsManager.renameTabStart({
|
gZenVerticalTabsManager.renameTabStart({
|
||||||
target: this.labelElement,
|
target: this.labelElement,
|
||||||
explicit: true,
|
explicit: true,
|
||||||
@@ -146,6 +149,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
createSubfolder() {
|
createSubfolder() {
|
||||||
|
// We need to expand all parent folders
|
||||||
|
let currentFolder = this;
|
||||||
|
do {
|
||||||
|
currentFolder.collapsed = false;
|
||||||
|
currentFolder = currentFolder.group;
|
||||||
|
} while (currentFolder);
|
||||||
gZenFolders.createFolder([], {
|
gZenFolders.createFolder([], {
|
||||||
renameFolder: !gZenUIManager.testingEnabled,
|
renameFolder: !gZenUIManager.testingEnabled,
|
||||||
label: 'Subfolder',
|
label: 'Subfolder',
|
||||||
|
@@ -74,6 +74,11 @@
|
|||||||
folder = target.group;
|
folder = target.group;
|
||||||
} else if (gBrowser.isTabGroupLabel(target.parentElement)) {
|
} else if (gBrowser.isTabGroupLabel(target.parentElement)) {
|
||||||
folder = target.parentElement.group;
|
folder = target.parentElement.group;
|
||||||
|
} else if (
|
||||||
|
target.parentElement?.isZenFolder &&
|
||||||
|
target?.classList.contains('tab-group-label-container')
|
||||||
|
) {
|
||||||
|
folder = target.parentElement;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We only want to rename zen-folders as firefox groups don't work well with this
|
// We only want to rename zen-folders as firefox groups don't work well with this
|
||||||
@@ -226,7 +231,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (group.collapsed && !this._sessionRestoring) {
|
if (group.collapsed && !this._sessionRestoring) {
|
||||||
group.collapsed = false;
|
group.collapsed = group.hasAttribute('has-active');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,7 +242,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
async on_TabSelect(event) {
|
async on_TabSelect(event) {
|
||||||
const tab = event.target;
|
const tab = gZenGlanceManager.getTabOrGlanceParent(event.target);
|
||||||
let group = tab?.group;
|
let group = tab?.group;
|
||||||
if (group?.hasAttribute('split-view-group')) group = group?.group;
|
if (group?.hasAttribute('split-view-group')) group = group?.group;
|
||||||
if (!group?.isZenFolder) {
|
if (!group?.isZenFolder) {
|
||||||
@@ -265,6 +270,7 @@
|
|||||||
gBrowser.pinTab(tab);
|
gBrowser.pinTab(tab);
|
||||||
group.addTabs([tab]);
|
group.addTabs([tab]);
|
||||||
} else {
|
} else {
|
||||||
|
tab._ignoreUngrouped = true;
|
||||||
// Otherwise, we must move it to the first tab since it was added in an unpinned state
|
// Otherwise, we must move it to the first tab since it was added in an unpinned state
|
||||||
gZenWorkspaces._emptyTab.after(tab);
|
gZenWorkspaces._emptyTab.after(tab);
|
||||||
gBrowser.tabContainer._invalidateCachedTabs();
|
gBrowser.tabContainer._invalidateCachedTabs();
|
||||||
@@ -274,6 +280,10 @@
|
|||||||
on_TabUngrouped(event) {
|
on_TabUngrouped(event) {
|
||||||
const tab = event.detail;
|
const tab = event.detail;
|
||||||
const group = event.target;
|
const group = event.target;
|
||||||
|
if (tab._ignoreUngrouped) {
|
||||||
|
delete tab._ignoreUngrouped;
|
||||||
|
return;
|
||||||
|
}
|
||||||
tab.removeAttribute('folder-active');
|
tab.removeAttribute('folder-active');
|
||||||
if (group.hasAttribute('split-view-group') && tab.hasAttribute('had-zen-pinned-changed')) {
|
if (group.hasAttribute('split-view-group') && tab.hasAttribute('had-zen-pinned-changed')) {
|
||||||
tab.setAttribute('zen-pinned-changed', true);
|
tab.setAttribute('zen-pinned-changed', true);
|
||||||
@@ -286,7 +296,7 @@
|
|||||||
if (!folder.activeTabs.length) {
|
if (!folder.activeTabs.length) {
|
||||||
folder.removeAttribute('has-active');
|
folder.removeAttribute('has-active');
|
||||||
}
|
}
|
||||||
this.collapseVisibleTab(folder);
|
this.collapseVisibleTab(folder, true);
|
||||||
this.updateFolderIcon(folder, 'close', false);
|
this.updateFolderIcon(folder, 'close', false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -613,7 +623,23 @@
|
|||||||
let activeGroup = folders.get(group?.id);
|
let activeGroup = folders.get(group?.id);
|
||||||
// If group has active tabs, we need to update the indentation
|
// If group has active tabs, we need to update the indentation
|
||||||
if (activeGroup) {
|
if (activeGroup) {
|
||||||
this.on_TabGroupCollapse({ target: activeGroup });
|
const activeGroupStart = activeGroup.querySelector('.zen-tab-group-start');
|
||||||
|
const selectedTabs = activeGroup.activeTabs;
|
||||||
|
if (selectedTabs.length > 0) {
|
||||||
|
const selectedItem = selectedTabs[0];
|
||||||
|
const isSplitView = selectedItem.group?.hasAttribute('split-view-group');
|
||||||
|
const selectedContainer = isSplitView ? selectedItem.group : selectedItem;
|
||||||
|
|
||||||
|
const heightUntilSelected =
|
||||||
|
window.windowUtils.getBoundsWithoutFlushing(selectedContainer).top -
|
||||||
|
window.windowUtils.getBoundsWithoutFlushing(activeGroupStart).bottom;
|
||||||
|
|
||||||
|
const adjustedHeight = isSplitView
|
||||||
|
? heightUntilSelected - 2
|
||||||
|
: heightUntilSelected;
|
||||||
|
activeGroupStart.style.marginTop =
|
||||||
|
-(adjustedHeight + 4 * (selectedTabs.length === 0 ? 1 : 0)) + 'px';
|
||||||
|
}
|
||||||
this.setFolderIndentation([tab], activeGroup, /* for collapse = */ true);
|
this.setFolderIndentation([tab], activeGroup, /* for collapse = */ true);
|
||||||
} else {
|
} else {
|
||||||
// Since the folder is now expanded, we should remove active attribute
|
// Since the folder is now expanded, we should remove active attribute
|
||||||
@@ -740,9 +766,11 @@
|
|||||||
const workspaceElement = gZenWorkspaces.workspaceElement(workspaceId);
|
const workspaceElement = gZenWorkspaces.workspaceElement(workspaceId);
|
||||||
const pinnedTabsContainer = workspaceElement.pinnedTabsContainer;
|
const pinnedTabsContainer = workspaceElement.pinnedTabsContainer;
|
||||||
pinnedTabsContainer.insertBefore(folder, pinnedTabsContainer.lastChild);
|
pinnedTabsContainer.insertBefore(folder, pinnedTabsContainer.lastChild);
|
||||||
folder.setAttribute('zen-workspace-id', workspaceId);
|
|
||||||
for (const tab of folder.tabs) {
|
for (const tab of folder.tabs) {
|
||||||
tab.setAttribute('zen-workspace-id', workspaceId);
|
tab.setAttribute('zen-workspace-id', workspaceId);
|
||||||
|
// This sets the ID for the current folder and any sub-folder
|
||||||
|
// we may encounter
|
||||||
|
tab.group.setAttribute('zen-workspace-id', workspaceId);
|
||||||
gBrowser.TabStateFlusher.flush(tab.linkedBrowser);
|
gBrowser.TabStateFlusher.flush(tab.linkedBrowser);
|
||||||
if (gZenWorkspaces._lastSelectedWorkspaceTabs[workspaceId] === tab) {
|
if (gZenWorkspaces._lastSelectedWorkspaceTabs[workspaceId] === tab) {
|
||||||
// This tab is no longer the last selected tab in the previous workspace because it's being moved to a new workspace
|
// This tab is no longer the last selected tab in the previous workspace because it's being moved to a new workspace
|
||||||
@@ -750,7 +778,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
folder.dispatchEvent(new CustomEvent('ZenFolderChangedWorkspace', { bubbles: true }));
|
folder.dispatchEvent(new CustomEvent('ZenFolderChangedWorkspace', { bubbles: true }));
|
||||||
gZenWorkspaces.changeWorkspaceWithID(workspaceId);
|
gZenWorkspaces.changeWorkspaceWithID(workspaceId).then(() => {
|
||||||
|
gBrowser.moveTabTo(folder, { elementIndex: 0, forceUngrouped: true });
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
canDropElement(element, targetElement) {
|
canDropElement(element, targetElement) {
|
||||||
@@ -1029,9 +1059,7 @@
|
|||||||
// We don't need to do anything if the URL is invalid. e.g. about:blank
|
// We don't need to do anything if the URL is invalid. e.g. about:blank
|
||||||
}
|
}
|
||||||
let tabLabel = tab.label || '';
|
let tabLabel = tab.label || '';
|
||||||
let iconURL =
|
let iconURL = gBrowser.getIcon(tab) || PlacesUtils.favicons.defaultFavicon;
|
||||||
gBrowser.getIcon(tab) ||
|
|
||||||
"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3C/svg%3E";
|
|
||||||
|
|
||||||
icon.src = iconURL;
|
icon.src = iconURL;
|
||||||
|
|
||||||
@@ -1285,6 +1313,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (group.activeTabs.length === 0) {
|
||||||
|
group.removeAttribute('has-active');
|
||||||
|
this.updateFolderIcon(group, 'close', false);
|
||||||
|
}
|
||||||
|
|
||||||
this.on_TabGroupExpand({ target: group, forExpandVisible: true });
|
this.on_TabGroupExpand({ target: group, forExpandVisible: true });
|
||||||
|
|
||||||
gBrowser.tabContainer._invalidateCachedVisibleTabs();
|
gBrowser.tabContainer._invalidateCachedVisibleTabs();
|
||||||
|
@@ -19,7 +19,9 @@ tab-group[split-view-group] {
|
|||||||
transparent 40%
|
transparent 40%
|
||||||
);
|
);
|
||||||
|
|
||||||
|
:root[zen-sidebar-expanded='true'] & {
|
||||||
margin-inline-start: var(--zen-folder-indent) !important;
|
margin-inline-start: var(--zen-folder-indent) !important;
|
||||||
|
}
|
||||||
|
|
||||||
& .tab-group-label {
|
& .tab-group-label {
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
@@ -194,7 +196,9 @@ zen-folder {
|
|||||||
-moz-window-dragging: no-drag;
|
-moz-window-dragging: no-drag;
|
||||||
transition: var(--zen-tabbox-element-indent-transition);
|
transition: var(--zen-tabbox-element-indent-transition);
|
||||||
|
|
||||||
|
:root[zen-sidebar-expanded='true'] & {
|
||||||
margin-inline-start: var(--zen-folder-indent) !important;
|
margin-inline-start: var(--zen-folder-indent) !important;
|
||||||
|
}
|
||||||
|
|
||||||
&[selected] > .tab-group-label-container::before {
|
&[selected] > .tab-group-label-container::before {
|
||||||
background-color: color-mix(in srgb, var(--zen-colors-border) 60%, transparent);
|
background-color: color-mix(in srgb, var(--zen-colors-border) 60%, transparent);
|
||||||
@@ -243,8 +247,12 @@ zen-folder {
|
|||||||
padding-block-end: 0 !important;
|
padding-block-end: 0 !important;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
height: calc(var(--tab-block-margin) * 2 + var(--tab-min-height));
|
height: calc(var(--tab-block-margin) * 2 + var(--tab-min-height));
|
||||||
padding-inline-start: var(--tab-group-label-padding);
|
padding-inline: var(--tab-group-label-padding);
|
||||||
|
|
||||||
|
:root[zen-sidebar-expanded='true'] & {
|
||||||
padding-inline-end: calc(var(--tab-group-label-padding) * 2);
|
padding-inline-end: calc(var(--tab-group-label-padding) * 2);
|
||||||
|
}
|
||||||
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
||||||
@@ -308,7 +316,7 @@ zen-folder {
|
|||||||
|
|
||||||
& > label,
|
& > label,
|
||||||
& > #tab-label-input {
|
& > #tab-label-input {
|
||||||
padding: 0 0 0 30px !important;
|
padding: 0 0 0 32px !important;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -472,3 +480,9 @@ zen-folder {
|
|||||||
.tab-group-overflow-count-container {
|
.tab-group-overflow-count-container {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:root:not([zen-sidebar-expanded]) {
|
||||||
|
& #context_zenFolderRename {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -620,6 +620,11 @@
|
|||||||
this.animatingFullOpen = true;
|
this.animatingFullOpen = true;
|
||||||
this.#currentTab.setAttribute('zen-dont-split-glance', true);
|
this.#currentTab.setAttribute('zen-dont-split-glance', true);
|
||||||
|
|
||||||
|
const isZenFolder = this.#currentParentTab?.group?.isZenFolder;
|
||||||
|
if (Services.prefs.getBoolPref('zen.folders.owned-tabs-in-folder') && isZenFolder) {
|
||||||
|
gBrowser.pinTab(this.#currentTab);
|
||||||
|
}
|
||||||
|
|
||||||
gBrowser.moveTabAfter(this.#currentTab, this.#currentParentTab);
|
gBrowser.moveTabAfter(this.#currentTab, this.#currentParentTab);
|
||||||
|
|
||||||
const browserRect = window.windowUtils.getBoundsWithoutFlushing(this.browserWrapper);
|
const browserRect = window.windowUtils.getBoundsWithoutFlushing(this.browserWrapper);
|
||||||
@@ -710,6 +715,10 @@
|
|||||||
const currentTab = this.#currentTab;
|
const currentTab = this.#currentTab;
|
||||||
const currentParentTab = this.#currentParentTab;
|
const currentParentTab = this.#currentParentTab;
|
||||||
|
|
||||||
|
const isZenFolder = currentParentTab?.group?.isZenFolder;
|
||||||
|
if (Services.prefs.getBoolPref('zen.folders.owned-tabs-in-folder') && isZenFolder) {
|
||||||
|
gBrowser.pinTab(currentTab);
|
||||||
|
}
|
||||||
await this.fullyOpenGlance({ forSplit: true });
|
await this.fullyOpenGlance({ forSplit: true });
|
||||||
gZenViewSplitter.splitTabs([currentTab, currentParentTab], 'vsep', 1);
|
gZenViewSplitter.splitTabs([currentTab, currentParentTab], 'vsep', 1);
|
||||||
const browserContainer = currentTab.linkedBrowser?.closest('.browserSidebarContainer');
|
const browserContainer = currentTab.linkedBrowser?.closest('.browserSidebarContainer');
|
||||||
|
@@ -190,6 +190,7 @@
|
|||||||
async #initializePinnedTabs(init = false) {
|
async #initializePinnedTabs(init = false) {
|
||||||
const pins = this._pinsCache;
|
const pins = this._pinsCache;
|
||||||
if (!pins?.length || !init) {
|
if (!pins?.length || !init) {
|
||||||
|
this.#hasInitializedPins = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -372,12 +373,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gBrowser._updateTabBarForPinnedTabs();
|
|
||||||
gZenUIManager.updateTabsToolbar();
|
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.#hasInitializedPins = true;
|
this.#hasInitializedPins = true;
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
|
gBrowser._updateTabBarForPinnedTabs();
|
||||||
|
gZenUIManager.updateTabsToolbar();
|
||||||
}
|
}
|
||||||
|
|
||||||
_onPinnedTabEvent(action, event) {
|
_onPinnedTabEvent(action, event) {
|
||||||
@@ -445,6 +446,18 @@
|
|||||||
group._pPos
|
group._pPos
|
||||||
);
|
);
|
||||||
group.setAttribute('zen-pin-id', id);
|
group.setAttribute('zen-pin-id', id);
|
||||||
|
for (const tab of group.tabs) {
|
||||||
|
// Only add it if the tab is directly under the group
|
||||||
|
if (
|
||||||
|
tab.pinned &&
|
||||||
|
tab.hasAttribute('zen-pin-id') &&
|
||||||
|
tab.group === group &&
|
||||||
|
this.#hasInitializedPins
|
||||||
|
) {
|
||||||
|
const tabPinId = tab.getAttribute('zen-pin-id');
|
||||||
|
await ZenPinnedTabsStorage.addTabToGroup(tabPinId, id, /* position */ tab._pPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
await this.refreshPinnedTabs();
|
await this.refreshPinnedTabs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -726,6 +739,10 @@
|
|||||||
const existingPin = this._pinsCache.find((p) => p.uuid === pin.uuid);
|
const existingPin = this._pinsCache.find((p) => p.uuid === pin.uuid);
|
||||||
if (existingPin) {
|
if (existingPin) {
|
||||||
Object.assign(existingPin, pin);
|
Object.assign(existingPin, pin);
|
||||||
|
} else {
|
||||||
|
// We shouldn't need it, but just in case there's
|
||||||
|
// a race condition while making new pinned tabs.
|
||||||
|
this._pinsCache.push(pin);
|
||||||
}
|
}
|
||||||
await ZenPinnedTabsStorage.savePin(pin, notifyObservers);
|
await ZenPinnedTabsStorage.savePin(pin, notifyObservers);
|
||||||
}
|
}
|
||||||
|
@@ -295,7 +295,9 @@
|
|||||||
var(--zen-tabbox-element-indent-transition);
|
var(--zen-tabbox-element-indent-transition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:root[zen-sidebar-expanded='true'] & {
|
||||||
margin-inline-start: var(--zen-folder-indent) !important;
|
margin-inline-start: var(--zen-folder-indent) !important;
|
||||||
|
}
|
||||||
|
|
||||||
/* Hide specific empty tabs (likely placeholders) */
|
/* Hide specific empty tabs (likely placeholders) */
|
||||||
&[zen-empty-tab] {
|
&[zen-empty-tab] {
|
||||||
|
@@ -137,7 +137,7 @@
|
|||||||
document.getElementById('zen-welcome-pages').style.display = 'flex';
|
document.getElementById('zen-welcome-pages').style.display = 'flex';
|
||||||
document.getElementById('zen-welcome-start').remove();
|
document.getElementById('zen-welcome-start').remove();
|
||||||
window.maximize();
|
window.maximize();
|
||||||
animate('#zen-welcome-pages', { opacity: [0, 1] }, { delay: 0.2, duration: 0.2 });
|
animate('#zen-welcome-pages', { opacity: [0, 1] }, { delay: 0.2, duration: 0.1 });
|
||||||
}
|
}
|
||||||
|
|
||||||
async fadeInTitles(page) {
|
async fadeInTitles(page) {
|
||||||
@@ -238,7 +238,7 @@
|
|||||||
delay: getMotion().stagger(0.05, { startDelay: 0.3 }),
|
delay: getMotion().stagger(0.05, { startDelay: 0.3 }),
|
||||||
type: 'spring',
|
type: 'spring',
|
||||||
bounce: 0,
|
bounce: 0,
|
||||||
duration: 0.2,
|
duration: 0.1,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -271,7 +271,7 @@
|
|||||||
await animate('#zen-welcome-page-content', { x: [0, '100%'] }, { bounce: 0 });
|
await animate('#zen-welcome-page-content', { x: [0, '100%'] }, { bounce: 0 });
|
||||||
document.getElementById('zen-welcome-page-content').remove();
|
document.getElementById('zen-welcome-page-content').remove();
|
||||||
await this.animHeart();
|
await this.animHeart();
|
||||||
this._pinRemainingTabs();
|
await this.#pinRemainingTabs();
|
||||||
await animate('#zen-welcome-pages', { opacity: [1, 0] });
|
await animate('#zen-welcome-pages', { opacity: [1, 0] });
|
||||||
document.getElementById('zen-welcome').remove();
|
document.getElementById('zen-welcome').remove();
|
||||||
document.documentElement.removeAttribute('zen-welcome-stage');
|
document.documentElement.removeAttribute('zen-welcome-stage');
|
||||||
@@ -288,10 +288,13 @@
|
|||||||
gZenUIManager.showToast('zen-welcome-finished');
|
gZenUIManager.showToast('zen-welcome-finished');
|
||||||
}
|
}
|
||||||
|
|
||||||
_pinRemainingTabs() {
|
async #pinRemainingTabs() {
|
||||||
for (const tab of _tabsToPin) {
|
for (const tab of _tabsToPin) {
|
||||||
tab.setAttribute('zen-workspace-id', gZenWorkspaces.activeWorkspace);
|
tab.setAttribute('zen-workspace-id', gZenWorkspaces.activeWorkspace);
|
||||||
gBrowser.pinTab(tab);
|
gBrowser.pinTab(tab);
|
||||||
|
await new Promise((resolve) => {
|
||||||
|
tab.addEventListener('ZenPinnedTabCreated', resolve, { once: true });
|
||||||
|
});
|
||||||
}
|
}
|
||||||
for (const tab of _tabsToPinEssentials) {
|
for (const tab of _tabsToPinEssentials) {
|
||||||
tab.removeAttribute('pending'); // Make it appear loaded
|
tab.removeAttribute('pending'); // Make it appear loaded
|
||||||
|
@@ -478,7 +478,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
return this.getEssentialsSection(currentWorkspace?.containerTabId);
|
return this.getEssentialsSection(currentWorkspace?.containerTabId);
|
||||||
}
|
}
|
||||||
|
|
||||||
async _createWorkspaceTabsSection(workspace, tabs) {
|
async _createWorkspaceTabsSection(workspace, tabs = []) {
|
||||||
const workspaceWrapper = document.createXULElement('zen-workspace');
|
const workspaceWrapper = document.createXULElement('zen-workspace');
|
||||||
const container = document.getElementById('tabbrowser-arrowscrollbox');
|
const container = document.getElementById('tabbrowser-arrowscrollbox');
|
||||||
workspaceWrapper.id = workspace.uuid;
|
workspaceWrapper.id = workspace.uuid;
|
||||||
@@ -1354,6 +1354,12 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
detail: { activeIndex: browser.gZenWorkspaces.activeWorkspace },
|
detail: { activeIndex: browser.gZenWorkspaces.activeWorkspace },
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
for (const workspace of workspaces.workspaces) {
|
||||||
|
// Add workspace elements if they dont exist on other windows
|
||||||
|
if (!browser.gZenWorkspaces.workspaceElement(workspace.uuid)) {
|
||||||
|
await browser.gZenWorkspaces._createWorkspaceTabsSection(workspace);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await browser.gZenWorkspaces.workspaceBookmarks();
|
await browser.gZenWorkspaces.workspaceBookmarks();
|
||||||
if (!ignoreStrip) {
|
if (!ignoreStrip) {
|
||||||
@@ -1499,7 +1505,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
_prepareNewWorkspace(window) {
|
#prepareNewWorkspace(window) {
|
||||||
document.documentElement.setAttribute('zen-workspace-id', window.uuid);
|
document.documentElement.setAttribute('zen-workspace-id', window.uuid);
|
||||||
let tabCount = 0;
|
let tabCount = 0;
|
||||||
for (let tab of gBrowser.tabs) {
|
for (let tab of gBrowser.tabs) {
|
||||||
@@ -1535,7 +1541,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
|
|
||||||
async changeWorkspaceWithID(workspaceID, ...args) {
|
async changeWorkspaceWithID(workspaceID, ...args) {
|
||||||
const workspace = this.getWorkspaceFromId(workspaceID);
|
const workspace = this.getWorkspaceFromId(workspaceID);
|
||||||
return await this.changeWorkspace(workspace, ...args);
|
await this.changeWorkspace(workspace, ...args);
|
||||||
}
|
}
|
||||||
|
|
||||||
async changeWorkspace(workspace, ...args) {
|
async changeWorkspace(workspace, ...args) {
|
||||||
@@ -1618,7 +1624,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#fixTabPositions() {
|
#fixTabPositions() {
|
||||||
gBrowser.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
// Fix tabs _tPos values relative to the actual order
|
// Fix tabs _tPos values relative to the actual order
|
||||||
const tabs = gBrowser.tabs;
|
const tabs = gBrowser.tabs;
|
||||||
const usedGroups = new Set();
|
const usedGroups = new Set();
|
||||||
@@ -2320,7 +2326,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
containerTabId,
|
containerTabId,
|
||||||
};
|
};
|
||||||
if (moveTabs) {
|
if (moveTabs) {
|
||||||
this._prepareNewWorkspace(workspace);
|
this.#prepareNewWorkspace(workspace);
|
||||||
await this._createWorkspaceTabsSection(workspace, tabs);
|
await this._createWorkspaceTabsSection(workspace, tabs);
|
||||||
await this._organizeWorkspaceStripLocations(workspace);
|
await this._organizeWorkspaceStripLocations(workspace);
|
||||||
}
|
}
|
||||||
|
@@ -5,8 +5,8 @@
|
|||||||
"binaryName": "zen",
|
"binaryName": "zen",
|
||||||
"version": {
|
"version": {
|
||||||
"product": "firefox",
|
"product": "firefox",
|
||||||
"version": "142.0",
|
"version": "142.0.1",
|
||||||
"candidate": "142.0"
|
"candidate": "142.0.1"
|
||||||
},
|
},
|
||||||
"buildOptions": {
|
"buildOptions": {
|
||||||
"generateBranding": true
|
"generateBranding": true
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
"brandShortName": "Zen",
|
"brandShortName": "Zen",
|
||||||
"brandFullName": "Zen Browser",
|
"brandFullName": "Zen Browser",
|
||||||
"release": {
|
"release": {
|
||||||
"displayVersion": "1.15b",
|
"displayVersion": "1.15.2b",
|
||||||
"github": {
|
"github": {
|
||||||
"repo": "zen-browser/desktop"
|
"repo": "zen-browser/desktop"
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user