diff --git a/packages/web/src/tabpanel/TabsPanel.svelte b/packages/web/src/tabpanel/TabsPanel.svelte index 4a3108709..43dc31b50 100644 --- a/packages/web/src/tabpanel/TabsPanel.svelte +++ b/packages/web/src/tabpanel/TabsPanel.svelte @@ -91,13 +91,22 @@ function splitTab(multiTabIndex) { openedTabs.update(tabs => - tabs.map((x, i) => ({ + tabs.map(x => ({ ...x, multiTabIndex: x.selected ? 1 - multiTabIndex : x.multiTabIndex, })) ); } + function splitTabGroup(tabGroupTabs, multiTabIndex) { + openedTabs.update(tabs => + tabs.map(x => ({ + ...x, + multiTabIndex: tabGroupTabs.find(y => x.tabid == y.tabid) ? 1 - multiTabIndex : x.multiTabIndex, + })) + ); + } + const closeTab = closeTabFunc((x, active) => x.tabid == active.tabid); const closeAll = async () => { const closeCandidates = getOpenedTabs() @@ -510,11 +519,21 @@ {/if} -
closeMultipleTabs(tab => tabGroup.tabs.find(x => x.tabid == tab.tabid))} - > - +
+ {#if allowSplitTab} +
splitTabGroup(tabGroup.tabs, multiTabIndex)} + > + +
+ {/if} +
closeMultipleTabs(tab => tabGroup.tabs.find(x => x.tabid == tab.tabid))} + > + +
{/if} @@ -673,13 +692,14 @@ white-space: nowrap; flex-grow: 1; } - .close-button-right { + .tab-group-buttons { margin-left: 5px; margin-right: 5px; color: var(--theme-font-3); + display: flex; } - .close-button-right:hover { + .tab-group-button:hover { color: var(--theme-font-1); }