From ff044ebec801cf5a8e27f3785c933d2140b66cd6 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sun, 5 Mar 2023 15:28:29 +0100 Subject: [PATCH] tab drag&drop fix --- packages/web/src/tabpanel/TabRegister.svelte | 2 +- packages/web/src/tabpanel/TabsContainer.svelte | 8 +++++++- packages/web/src/tabpanel/TabsPanel.svelte | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/web/src/tabpanel/TabRegister.svelte b/packages/web/src/tabpanel/TabRegister.svelte index eb73c09fb..4027e3bb3 100644 --- a/packages/web/src/tabpanel/TabRegister.svelte +++ b/packages/web/src/tabpanel/TabRegister.svelte @@ -50,6 +50,6 @@ tabComponent={mountedTabs[tabid]} {...openedTabsByTabId[tabid]?.props} {tabid} - tabVisible={tabid == (shownTab && shownTab.tabid)} + tabVisible={tabid == shownTab?.tabid} /> {/each} diff --git a/packages/web/src/tabpanel/TabsContainer.svelte b/packages/web/src/tabpanel/TabsContainer.svelte index 51da61079..179a59777 100644 --- a/packages/web/src/tabpanel/TabsContainer.svelte +++ b/packages/web/src/tabpanel/TabsContainer.svelte @@ -8,7 +8,13 @@ export let multiTabIndex; function findShownTab(tabs: TabDefinition[], multiTabIndex, lockedDbMode, currentDb) { - const selectedTab = tabs.find(x => x.selected && x.closedTime == null && (x.multiTabIndex || 0) == multiTabIndex); + const selectedTab = tabs.find( + x => + x.selected && + x.closedTime == null && + (x.multiTabIndex || 0) == multiTabIndex && + shouldShowTab(x, lockedDbMode, currentDb) + ); if (selectedTab) { return selectedTab; } diff --git a/packages/web/src/tabpanel/TabsPanel.svelte b/packages/web/src/tabpanel/TabsPanel.svelte index d836d0d9e..4a3108709 100644 --- a/packages/web/src/tabpanel/TabsPanel.svelte +++ b/packages/web/src/tabpanel/TabsPanel.svelte @@ -447,6 +447,11 @@ return x; }) ); + + draggingDbGroup.set(null); + draggingDbGroupTarget.set(null); + draggingTab.set(null); + draggingTabTarget.set(null); } let domTabs;