Commit Graph

86 Commits

Author SHA1 Message Date
mr. m
ca93874971 fix: Make sure synced split views have the same group ID, b=no-bug, c=split-view 2026-01-19 23:39:30 +01:00
mr. m
745d0edc82 feat: Make sure to run view swaps before rendering a new frame, b=no-bug, c=split-view, tabs 2026-01-19 13:40:27 +01:00
mr. m
cad9f01722 feat: Make sure to ignore unknown split view groups when restoring, b=no-bug, c=split-view 2026-01-19 03:03:29 +01:00
mr. m
adb385b710 fix: Fixed language packs not parsing correctly, b=no-bug, c=common, split-view 2026-01-18 20:09:06 +01:00
mr. m
679be6d208 fix: Small drag and drop fixes and possible leak fix, b=no-bug, c=mods, split-view, workspaces 2026-01-18 00:16:32 +01:00
mr. m
a993f40532 fix: Fixed fetching wrong history entries for pinned tabs state cache, b=no-bug, c=workspaces, split-view 2026-01-17 15:35:59 +01:00
Andrey Bochkarev
40986668de feat: Store and restore split view layout tree, p=#11862
* feat: Store and restore split view layout tree

* fix: add backwards compatibility

* fix: Formatting

* fix: Don't activate split view when restoring session

* feat: Add id to unsynced tabs

* fix: Formatting

* refactor: Streamline unsynced window event handling

* feat: Make sure to duplicate pinend tabs when splitting, b=no-bug, c=split-view

---------

Co-authored-by: mr. m <mr.m@tuta.com>
2026-01-15 11:14:52 +01:00
mr. m
564571f449 fix: Fixed selecting split views with 2 windows turning them to blank tabs, b=no-bug, c=split-view, tabs 2026-01-14 19:27:21 +01:00
mr. m
b6d17b1ff7 fix: Fixed restoring split views inside folders, b=closes #11887, c=compact-mode, kbs, split-view, tabs 2026-01-14 18:55:20 +01:00
mr. m
18601f04a2 feat: Small quality fixes for drag and drop, b=no-bug, c=common, compact-mode, split-view, tabs 2026-01-14 14:14:46 +01:00
mr. m
58a745ec2f feat: New drag and drop promo for essentials, p=#11891
* feat: New drag and drop promo for essentials, b=no-bug, c=tabs, common, split-view, workspaces

* feat: Finish impl, b=no-bug, c=common, compact-mode, glance, split-view, tabs, vendor

* feat: Add a pref to disable it, b=no-bug, c=tabs

* fix: Fix split views having wrong color, b=no-bug, c=split-view

* chore: Finish suggestions, b=no-bug, c=tabs
2026-01-14 01:31:45 +01:00
mr. m
37eed5fcfe fix: Start working on more eslint rules, p=#11874
* fix: Start working on more eslint rules, b=no-bug, c=common, mods, workspaces

* chore: Continue migration, b=no-bug, c=workflows, windows, glance, mods, welcome, workspaces, common, compact-mode, folders, tests, kbs, media, split-view, tabs

* chore: Finish, b=no-bug, c=common, compact-mode, folders, glance, tests, kbs, media, mods, split-view, tabs, workspaces, welcome

* fix: Fix installing deps, b=no-bug, c=common

* feat: Dont initialize git on download checks, b=no-bug, c=workflows

* feat: Remove empty JS docs, b=no-bug, c=common, compact-mode, folders, glance, kbs, media, mods, split-view, tabs, tests, workspaces

* chore: Run lint, b=no-bug, c=common, folders, glance, kbs, mods, split-view, tabs, workspaces
2026-01-12 15:11:43 +01:00
mr. m
fd82ad95b7 perf: Further optimize having to reflush the document on space switch, b=bug #11851, c=split-view, workspaces 2026-01-12 11:49:21 +01:00
mr. m
f39faf6638 fix: Fixed closing and reopening zen turning tabs into blank states when having multiple windows, b=bug #11831, c=split-view 2026-01-08 20:48:38 +01:00
mr. m
7e7d860c9e chore: Sync upstream Firefox to version 147.0, p=#11822
* chore: Sync upstream to `Firefox 147.0`

* chore: Continued migration, b=no-bug, c=tests

* chore: Finish migration without testing, b=no-bug, c=scripts, tabs, media, common, split-view

* feat: Finish migration, b=no-bug, c=common, compact-mode, split-view, workspaces

* feat: Finish basic migration, b=no-bug, c=kbs, common, folders

* feat: Update surfer, b=no-bug, c=scripts
2026-01-08 18:06:05 +01:00
mr. m
9dbd4cdd41 chore: [part 2] Continue on motion to native animations migration, p=#11798
* chore: Motion to native animatiosn migration, b=no-bug, c=common, glance, split-view

* Discard changes to src/zen/glance/zen-glance.css

* Discard changes to src/zen/glance/ZenGlanceManager.mjs

* feat: [part 2]: Continue on motion to native animations migration, b=no-bug, c=common, folders, split-view, workspaces
2026-01-03 02:52:23 +01:00
mr. m
e118cc1a20 chore: Motion to native animatiosn migration, p=#11796
* chore: Motion to native animatiosn migration, b=no-bug, c=common, glance, split-view

* Discard changes to src/zen/glance/zen-glance.css

* Discard changes to src/zen/glance/ZenGlanceManager.mjs
2026-01-03 02:42:17 +01:00
mr. m
f6ba087539 feat: Make sure to sync tab's permanent key to other windows, b=bug #11750, c=folders, split-view 2026-01-01 17:43:57 +01:00
mr. m
335c024e6d chore: Drag and drop refactor, p=#11723
* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Start making use of IDs instead of sync identifiers, b=no-bug, c=folders

* feat: Listen to new tab opens for new sync system, b=no-bug, c=common, folders, tabs

* feat: Listen for more tab events and properly sync them, b=no-bug, c=common, folders, tabs

* feat: Start moving browser views to the selected windows, b=no-bug, c=no-component

* chore: Remove extra patch, b=no-bug, c=no-component

* feat: Leave a screenshot of the page behind when switching windows or tabs, b=no-bug, c=common

* feat: Run session saves right before writing and quiting, b=no-bug, c=common

* fix: Fixed going back to a different window not allowing to type on inputs, b=no-bug, c=no-component

* feat: Start syncing folders as well, b=no-bug, c=folders

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* chore: Update patches to ff 146, b=no-bug, c=no-component

* feat: Early support for unsynced windoiws, b=no-bug, c=workspaces

* fix: Move back active views when closing a window, b=no-bug, c=no-component

* feat: Stop rendering sub-layers when swaping browsers, b=no-bug, c=common

* feat: Improved support for unsynced windows support, b=no-bug, c=workspaces, folders

* feat: Implemented 'Move To...' Button for unsynced windows, b=no-bug, c=workspaces, common

* feat: Make sure to properly flush all windows when making a new one and fix removing progress listeners, b=no-bug, c=workspaces

* feat: Make sure to not lose any tabs when opening from a private window, b=no-bug, c=workspaces

* feat: Allow unload to run instantly and fix closing windows on mac, b=no-bug, c=no-component

* feat: Make sure to always initialize an empty state with the sidebar object, b=no-bug, c=workspaces

* chore: Small fixes and QA checks, b=no-bug, c=tabs, workspaces

* fix: Fixed tab labels not changing on unfocused windows, b=no-bug, c=no-component

* feat: Fixed closing windows on macos not returning to the original views, b=no-bug, c=no-component

* chore: Turn off debug flags by default, b=no-bug, c=no-component

* feat: Start implementing old pinned tab behaviour we used to have, b=no-bug, c=common, tabs

* feat: Unsynced windows should always be allowed to change labels, b=no-bug, c=welcome

* feat: Make sure we wait long enough before we initialize workspaces, b=no-bug, c=workspaces

* feat: Dont mix remoteness when changing browser views and restore window spaces, b=no-bug, c=common, folders, workspaces

* test: Fixed tests for the pinned tabs manager, b=no-bug, c=tabs, folders, tests, welcome

* feat: Added partial support for split views, b=no-bug, c=split-view

* chore: Finished basic support for split views, b=no-bug, c=folders, split-view

* feat: Always make sure to save the last closed window to the sidebar object, b=no-bug, c=no-component

* feat: Implement workspace sync store into the session file, b=closes #10857, c=common, tabs, tests, workspaces

* feat: New drag and drop system, b=no-bug, c=tabs, common, folders

* feat: Add support for drag-and-dropping tabs into groups, b=no-bug, c=common, folders, tabs, workspaces

* feat: Add a default value for the workspace cache, b=no-bug, c=workspaces

* fix: Default assign an array instead of an object to the workspaces cache, b=no-bug, c=workspaces

* feat: Take into consideration win data may not have allocated spaces, b=no-bug, c=workspaces

* feat: Always make sure we are assigning the correct space ID, b=no-bug, c=workspaces

* feat: Make sure to initialize windows even if there are no tabs, b=no-bug, c=no-component

* feat: Improved drag and drop simulation, b=no-bug, c=common, tabs

* feat: Implement opacity changes to the drag image, b=no-bug, c=tabs, common, split-view

* feat: Support for drag and dropping outside the window, b=no-bug, c=split-view

* feat: Added transitions when reordering, b=no-bug, c=split-view, tabs

* feat: Started working on drag and dropping to essentials, b=no-bug, c=no-component

* Discard changes to locales/en-US/browser/browser/zen-workspaces.ftl

* Discard changes to prefs/zen/view.yaml

* Discard changes to prefs/zen/zen.yaml

* Discard changes to src/browser/base/content/zen-assets.inc.xhtml

* Discard changes to src/browser/base/content/zen-assets.jar.inc.mn

* Discard changes to src/browser/base/content/zen-panels/popups.inc

* Discard changes to src/browser/base/content/zen-preloaded.inc.xhtml

* Discard changes to src/browser/components/places/content/editBookmark-js.patch

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/sessionstore/TabState-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch

* Discard changes to src/zen/ZenComponents.manifest

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* feat: Finish migration, b=no-bug, c=no-component

* feat: Add support for multi tabs dragging, b=no-bug, c=tabs

* feat: Added support for essential tabs, b=no-bug, c=split-view, tabs, workspaces

* feat: Added support to switch space when holding on the side of the sidebar, b=no-bug, c=common, split-view, workspaces

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* chore: Fixed merge conflicts, b=no-bug, c=no-component

* feat: Added support for split views, b=no-bug, c=split-view

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-12-28 18:26:52 +01:00
mr. m
d93c46fe20 feat: Full cross-window workspace syncing, p=#10034
* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Start making use of IDs instead of sync identifiers, b=no-bug, c=folders

* feat: Listen to new tab opens for new sync system, b=no-bug, c=common, folders, tabs

* feat: Listen for more tab events and properly sync them, b=no-bug, c=common, folders, tabs

* feat: Start moving browser views to the selected windows, b=no-bug, c=no-component

* chore: Remove extra patch, b=no-bug, c=no-component

* feat: Leave a screenshot of the page behind when switching windows or tabs, b=no-bug, c=common

* feat: Run session saves right before writing and quiting, b=no-bug, c=common

* fix: Fixed going back to a different window not allowing to type on inputs, b=no-bug, c=no-component

* feat: Start syncing folders as well, b=no-bug, c=folders

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* chore: Update patches to ff 146, b=no-bug, c=no-component

* feat: Early support for unsynced windoiws, b=no-bug, c=workspaces

* fix: Move back active views when closing a window, b=no-bug, c=no-component

* feat: Stop rendering sub-layers when swaping browsers, b=no-bug, c=common

* feat: Improved support for unsynced windows support, b=no-bug, c=workspaces, folders

* feat: Implemented 'Move To...' Button for unsynced windows, b=no-bug, c=workspaces, common

* feat: Make sure to properly flush all windows when making a new one and fix removing progress listeners, b=no-bug, c=workspaces

* feat: Make sure to not lose any tabs when opening from a private window, b=no-bug, c=workspaces

* feat: Allow unload to run instantly and fix closing windows on mac, b=no-bug, c=no-component

* feat: Make sure to always initialize an empty state with the sidebar object, b=no-bug, c=workspaces

* chore: Small fixes and QA checks, b=no-bug, c=tabs, workspaces

* fix: Fixed tab labels not changing on unfocused windows, b=no-bug, c=no-component

* feat: Fixed closing windows on macos not returning to the original views, b=no-bug, c=no-component

* chore: Turn off debug flags by default, b=no-bug, c=no-component

* feat: Start implementing old pinned tab behaviour we used to have, b=no-bug, c=common, tabs

* feat: Unsynced windows should always be allowed to change labels, b=no-bug, c=welcome

* feat: Make sure we wait long enough before we initialize workspaces, b=no-bug, c=workspaces

* feat: Dont mix remoteness when changing browser views and restore window spaces, b=no-bug, c=common, folders, workspaces

* test: Fixed tests for the pinned tabs manager, b=no-bug, c=tabs, folders, tests, welcome

* feat: Added partial support for split views, b=no-bug, c=split-view

* chore: Finished basic support for split views, b=no-bug, c=folders, split-view

* feat: Always make sure to save the last closed window to the sidebar object, b=no-bug, c=no-component

* feat: Implement workspace sync store into the session file, b=closes #10857, c=common, tabs, tests, workspaces

* feat: Add a default value for the workspace cache, b=no-bug, c=workspaces

* fix: Default assign an array instead of an object to the workspaces cache, b=no-bug, c=workspaces

* feat: Take into consideration win data may not have allocated spaces, b=no-bug, c=workspaces

* feat: Always make sure we are assigning the correct space ID, b=no-bug, c=workspaces

* feat: Make sure to initialize windows even if there are no tabs, b=no-bug, c=no-component

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-12-22 11:12:52 +01:00
mr. m
53d223b9c5 fix: Fixed always recalculating split view leafs on location changes, b=no-bug, c=split-view 2025-12-20 13:05:44 +01:00
mr. m
cf4c754e57 fix: Fixed split view splitters showing up when opening glance, b=closes #11641, c=split-view 2025-12-20 00:26:03 +01:00
mr. m
59072ee932 fix: Fixed new split command not working correctly, b=closes #11637, c=split-view 2025-12-19 23:46:40 +01:00
mr. m
0e8b8da845 chore: Convert the codebase into modules, p=#11364
* chore: Convert the codebase into modules, b=no-bug, c=common, compact-mode, folders, fonts, glance, images, kbs, media, mods, split-view, tabs, tests, vendor, welcome, workspaces

* feat: Added update popup, b=no-bug, c=media, common
2025-11-20 18:14:46 +01:00
Mr. M
4361efb956 feat: Start using Firefox's split views to prevent memory leaks, b=no-bug, c=common, split-view 2025-11-18 20:16:51 +01:00
mr. m
96c6ec658c chore: Update to Firefox 145.0, p=#11167 2025-11-08 11:40:06 +01:00
mr. m
be417381ed fix: Fixed various regressions from 1.17b, b=closes #10924, closes #10928, closes #10933, c=common, split-view, tabs 2025-10-22 16:54:11 +02:00
mr. m
c0cc10ecd7 perf: Improve split view switching perf and them resetting scroll, p=#10863, c=split-view
* feat: Improve button sizings for the sidebar, b=no-bug, c=common, tabs, workspaces

* perf: Improved split view switch perf, b=no-bug, c=glance, split-view
2025-10-19 00:05:20 +02:00
mr. m
f273cd8fd1 chore: Refactor glance animtions, p=#10690 2025-10-05 18:57:35 +02:00
mr. m
528f3d6a0b fix: Fixed cancelling drag mid-split, b=closes #10554, c=tabs, split-view 2025-09-27 12:53:41 +02:00
mr. m
403d5ae92e feat: Add learning for omnibox commands, p=#10564 2025-09-27 00:53:25 +02:00
mr. m
61d0d5ced6 fix: Fixed split tab icons being misaligned, b=bug #10501, p=#10556 2025-09-26 13:42:35 +02:00
Mr. M
ed492568e6 fix: Small fixes when cancelling new empty split view, b=no-bug, c=common, split-view, workspaces 2025-09-22 23:08:11 +02:00
mr. m
5ac63e3b3b feat: Prevent flashing when cancelling new split view creation, b=no-bug, c=split-view 2025-09-22 10:50:44 +02:00
Mr. M
d962cf9949 fix: Fixed closing last tab not closing the window and other refactors, b=closes #10455, c=common, configs, kbs, split-view, folders, tests, workspaces 2025-09-21 17:29:40 +02:00
mr. m
3fe702fe4d fix: animateUnload for folder, p=#10440
This reverts commit a9846855c4.
2025-09-20 13:54:15 +02:00
mr. m
a9846855c4 Revert "fix: animateUnload for folder, p=#10440" (#10448)
This reverts commit 81f7ae46d3.
2025-09-20 13:51:41 +02:00
octaviusz
81f7ae46d3 fix: animateUnload for folder, p=#10440
* fix: `animateUnload` for folder

* fix: Formatting

* fix: Some fixes

* fix: Formatting

* fix: Fix unloading split views, b=no-bug, c=folders, split-view

* test: Fixed tests, b=no-bug, c=folders, tabs

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-09-20 00:19:33 +02:00
Mr. M
16ec5b36c1 feat: Fixed issue with workspace changes getting stuck, b=bug #9334, c=common, compact-mode, glance, split-view, tests, workspaces 2025-09-17 16:08:55 +02:00
mr. m
f9f95eeda1 fix: Fixed swiping when hovering the urlbar, b=no-bug, c=split-view, workspaces 2025-09-16 23:26:53 +02:00
mr. m
b0c53ed068 feat: Polished split view creation and fixed minor details, b=no-bug, c=tabs, common, compact-mode, folders, glance, split-view, workspaces 2025-09-16 17:10:31 +02:00
Mr. M
e6882a42d6 feat: Added empty splits support and more urlbar actions, b=no-bug, c=workspaces, common, kbs, split-view, tests 2025-09-14 17:41:12 +02:00
Mr. M
5c8e6dd5a4 chore: Change the use of hidden after the new firefox update, b=no-bug, c=compact-mode, split-view, workspaces 2025-09-13 01:46:35 +02:00
Mr. M
53241eb1be feat: Small quality fixes, b=no-bug, c=common, compact-mode, folders, kbs, split-view 2025-09-12 15:00:47 +02:00
Mr. M
eedc5b7307 fix: Fixed moving tabs to different workspaces, b=no-bug, c=common, folders, split-view, workspaces 2025-08-30 15:00:20 +02:00
octaviusz
8d15c9ef49 fix: Test test_Split_View_Inside_Folder (#9902)
* fix: Test `test_Split_View_Inside_Folder`

* fix: Extra `ungroupTab` call
2025-08-15 20:25:48 +02:00
octaviusz
591dce5921 feat: Zen Folders, p=#9355, c=folders
* Start working on zen folders

* Rework zen-folder SessionStore

* Refactor restoreDataFromSessionStore

* fix linter

* Fix preserve folder order on restore

* Feat allow dragging tabs into zen-folder

* Fix ensure collapsed folders are hidden on session restore

* Feat store parentId nested folders

* feat: Implement tabs list popup

* refactor: Move tabs popup to `popups.inc`

* feat: Implement drag-and-drop folder into folder

* feat: Improved UI for search panel, b=no-bug, c=folders

* fix: Add extra margin when animating collapsed folders, b=no-bug, c=folders

* feat: Implement tab group rename and other UI changes, b=no-bug, c=folders, common

* feat: Add animated folder dots and adaptive search popup positioning

* fix: resolve conflicts

* fix: Correct active state indication for collapsed folders

* feat: Allow folders to be double clicked, b=no-bug, c=common, folders

* fix: incorrect tab order

* chore: Update prefs to the rust version, b=no-bug, c=folders

* fix: better handling of subfolders

* chore: Improve dynamic spacing when drag and dropping and fixed split views UI, b=no-bug, c=tabs, folders

* feat: Empty tab and improve drag and drop

* fix: add tab search event once

* fix: Empty tab should always be at first position

* feat: improve drag and drop interaction with folders

* feat: Improve drag-and-drop interaction for zen folders

* fix: Improve zen folder session restoration and visibility

* fix: Correct visible element indexing

* fix: Correct restore subfolder order

* feat: Use empty tabs and dont highlight current folder we currently are in, b=no-bug, c=tabs, folders

* feat: persist and restore split-view group state in subfolders

* fix: npm run pretty

* fix: dropIndicator and transform for split-view-group

* fix: Formatting

* fix: improve split group and folder drag-and-drop and persistence

* chore: Fix lint issues and merge with dev, b=no-bug, c=folders

* chore: Move folder element to a different location, b=no-bug, c=folders

* feat: Added a simple folders context menu and simplified patches, b=no-bug, c=tabs, folders

* fix: Correct active tab position in folders collapse animation

* feat: Add ungroup and delete folder actions

* fix: Fixed empty tabs not being able to be pinned, b=no-bug, c=workspaces

* feat: Added folder -> space conversion and pref checks, b=no-bug, c=folders, workspaces

* Update locales/en-US/browser/browser/zen-folders.ftl

Co-authored-by: Patrik Egyed <pregnor@gmail.com>
Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>

* fix: Fixed folders not expanding when dragging another folder inside, b=no-bug, c=folders

* refactor: Refactor and improve tab group expansion logic

* feat: New folder dots

* test: Added simple folder creation test, b=no-bug, c=folders, tests

* fix: Don't expand folder when a tab inside it is selected

* feat: Added change folder to space menu item, b=no-bug, c=folders, workspaces

* feat: Added a menu item to create folders more easily, b=no-bug, c=workspaces, common, folders

* feat: Improved animations for collapsing active folders, b=no-bug, c=folders

* fix: Insert folder before pinned separator

* test: Improve folder and welcome testing, b=no-bug, c=folders, tests, welcome

* test: Fixed welcome tests, b=no-bug, c=folders, tests, welcome

* chore: lint, b=no-bug, c=tests, welcome

* feat: Add better selected UI, b=no-bug, c=folders

* feat: Emoji icons

* fix: Better handling of drag-and-drop folder highlighting

* fix: Single quotes

* fix: Hide emoji when folder has selected tab

* feat: Improved icons and animations, b=no-bug, c=folders, tabs

* fix: Fixed fetching the wrong prefs, b=no-bug, c=tabs, folders

* fix: Smoother dot animations

* fix: dragOverFolderThreshold condition and linter

* feat: visually collapse/expand active tab groups on drag/drop

* fix: Correctly transform folder with selected tab

* feat: Added better icons picker to support SVG, b=no-bug, c=common, folders, workspaces

* fix: Correctly transform tabs after moving them

* fix: Fixed not handling properly pinned tab count, b=no-bug, c=tabs, common, folders

* chore: Small formatting, b=no-bug, c=folders

* feat: Support SVG for folder icons

* fix: Formatting

* fix: Performance improvements for SVG icons

* fix: Shift up the folder icon

* fix: Handle null/undefined user icon values defensively

* feat: Improved icon sizes and fixed bug when collapsing folders with collapsed folders, b=no-bug, c=common, folders, workspaces

* chore: Tweaked the transform values for icons, b=no-bug, c=folders

* feat: Added support for collapsed mode (experimental), b=no-bug, c=folders

* fix: ungroup split view

* fix: Improve handling of special tabs during folder creation and drag-and-drop

* fix: Formatting

* feat: Imrpoved hardware accelaration for the icons and folder height calculation, b=no-bug, c=tabs, folders

* refactor: Extract dragover logic for tab group labels

* fix: Small fixes to the folders UI, b=no-bug, c=tabs, folders

* feat: Improved icons opacity and dialog, b=no-bug, c=common, workspaces

* test: Added subfolders basic test, b=no-bug, c=folders, tests

* fix: Drop indicator for folder targets

* feat: Improved drag and drop handling from normal to pinned tabs, b=no-bug, c=folders, tabs

* fix: Fixed moving split views into pinned tabs container, b=no-bug, c=folders, tabs

* feat: Improved new drag and drop offset, b=no-bug, c=tabs

* feat: Refine folder drop behavior with new thresholds

* fix: tabs.js extra space in patch

* fix: Properly handle has-active state

* fix: Add optional chaining for activeGroups length check

* fix: Fixed moving tabs to the workspace indicator not showing any feedback, b=no-bug, c=tabs

* feat: Change svg stroke width, b=no-bug, c=folders, tabs

* feat: Remove aspect ratio for the folder icon, b=no-bug, c=folders, tabs

* feat: Don't reset transform when pining tabs, b=no-bug, c=tabs

* feat: Ungroup tabs when dragging and make sure to animate tabs after the selected one, b=no-bug, c=tabs, folders

* fix: Transform folder with active tab

* fix: Fixed expand animation not working for the first time, b=no-bug, c=folders

* feat: Add expand to selected functionality for folders

* fix: Formatting

* Update src/zen/folders/ZenFolder.mjs

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>

* Update src/zen/workspaces/ZenWorkspaces.mjs

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>

* fix: Set icon for new workspace

* fix: Formatting

* fix: Hide the icon if empty

* fix: Optimize tab drag-over transitions

* feat: Lower the drag and drop threshold, b=no-bug, c=tabs, folders

* feat: Hide search panel when theres no visible tabs, b=no-bug, c=tabs, folders

* fix: Adapt tab-group to new changes

* fix: Fixed expanding split views as folders, b=no-bug, c=folders

* feat(tabs): Implement tab grouping persistence for pinned tabs

This commit introduces the ability to group pinned tabs for better organization.

Changes include:

- Added `createGroup` to create new tab groups.
- Added `addTabToGroup` to add existing tabs to a group.
- Added `removeTabFromGroup` to remove a tab from a group (moving it to the root level).
- Added `moveTabBetweenGroups` to move tabs between different groups or to the root level.
- Added `getAllGroups` to retrieve all tab groups, optionally filtered by workspace.
- Added `getGroupInfo` to retrieve information about a specific group, including its child count.
- Added `reorderTabsInGroup` to reorder tabs within a specific group.

These functions provide a comprehensive API for managing tab groups within the Zen Browser.  Error handling and input validation are included for robustness.  Database transactions are used to ensure data consistency. Observers are notified of changes to notify the sync engine.

* feat: Improve stroke colors for light mode, b=no-bug, c=folders

* perf: cache and optimize animation updates

* fix: Expand folder after drop

* fix: Update active state on tab change

* feat: Sync groups to new windows, b=no-bug, c=folders, tabs, workspaces

* feat: Finish window syncing for new folders, b=no-bug, c=tabs, folders, workspaces

* feat: Make sure SVG icons use the context fill instead of the current color, b=no-bug, c=common, folders

* feat: Added support for drag and drop in collapsed mode, b=no-bug, c=tabs, folders

* fix: Clean up tab attributes and styles on workspace transfer

* fix: Fixed svg icons being always dark, b=no-bug, c=workspaces

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
Co-authored-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
Co-authored-by: Mr. M <mr.m@tuta.com>
Co-authored-by: Patrik Egyed <pregnor@gmail.com>
Co-authored-by: Kristijan Ribarić <kriba13@gmail.com>
2025-08-06 08:59:08 -07:00
Mr. M
203d1ba701 fix: Fixed split views not being shown from the context menu, b=no-bug, c=split-view 2025-08-04 16:53:50 +02:00
Mr. M
3ba805802a fix: Fixed deleting a workspace and restarting, b=no-bug, c=glance, split-view, workspaces 2025-08-02 20:50:48 +02:00
mr. m
6641152100 chore: Implemented static linting for JS modules, p=#9673, c=common 2025-07-28 21:08:31 +02:00