diff --git a/app/src/boot/globalEvent/keydown.ts b/app/src/boot/globalEvent/keydown.ts index 5785a9a79..9f88b919c 100644 --- a/app/src/boot/globalEvent/keydown.ts +++ b/app/src/boot/globalEvent/keydown.ts @@ -1417,7 +1417,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => { return; } if (matchHotKey(window.siyuan.config.keymap.general.closeOthers.custom, event) && !event.repeat) { - const tab = getActiveTab(); + const tab = getActiveTab(false); if (tab) { closeTabByType(tab, "closeOthers"); } @@ -1425,7 +1425,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => { return; } if (matchHotKey(window.siyuan.config.keymap.general.closeAll.custom, event) && !event.repeat) { - const tab = getActiveTab(); + const tab = getActiveTab(false); if (tab) { closeTabByType(tab, "closeAll"); } @@ -1433,7 +1433,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => { return; } if (matchHotKey(window.siyuan.config.keymap.general.closeUnmodified.custom, event) && !event.repeat) { - const tab = getActiveTab(); + const tab = getActiveTab(false); if (tab) { const unmodifiedTabs: Tab[] = [] tab.parent.children.forEach((item: Tab) => { @@ -1451,13 +1451,12 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => { } if ((matchHotKey(window.siyuan.config.keymap.general.closeLeft.custom, event) || matchHotKey(window.siyuan.config.keymap.general.closeRight.custom, event)) && !event.repeat) { - const tab = getActiveTab(); + const tab = getActiveTab(false); if (tab) { const leftTabs: Tab[] = []; const rightTabs: Tab[] = []; let midIndex = -1; tab.parent.children.forEach((item: Tab, index: number) => { - const editor = item.model as Editor; if (item.id === tab.id) { midIndex = index; } diff --git a/app/src/layout/tabUtil.ts b/app/src/layout/tabUtil.ts index 7ad9104da..4c2079f0d 100644 --- a/app/src/layout/tabUtil.ts +++ b/app/src/layout/tabUtil.ts @@ -329,23 +329,19 @@ export const closeTabByType = async (tab: Tab, type: "closeOthers" | "closeAll" if (type === "closeOthers") { for (let index = 0; index < tab.parent.children.length; index++) { if (tab.parent.children[index].id !== tab.id && !tab.parent.children[index].headElement.classList.contains("item--pin")) { - tab.parent.children[index].parent.removeTab(tab.parent.children[index].id, true, true, false); + await tab.parent.children[index].parent.removeTab(tab.parent.children[index].id, true, true, false); + index--; } } - if (!tab.headElement.parentElement.querySelector(".item--focus")) { - tab.parent.switchTab(tab.headElement, true); - } - return + return; } if (type === "closeAll") { for (let index = 0; index < tab.parent.children.length; index++) { if (!tab.parent.children[index].headElement.classList.contains("item--pin")) { await tab.parent.children[index].parent.removeTab(tab.parent.children[index].id, true); + index--; } } - if (tab.parent.children[0].headElement.parentElement) { - tab.parent.children[0].parent.switchTab(tab.parent.children[0].headElement, true); - } return; } if (tabs.length > 0) { @@ -354,11 +350,5 @@ export const closeTabByType = async (tab: Tab, type: "closeOthers" | "closeAll" await tabs[index].parent.removeTab(tabs[index].id); } } - if (tab.headElement.parentElement && !tab.headElement.parentElement.querySelector(".item--focus")) { - tab.parent.switchTab(tab.headElement, true); - } else if (tab.parent.children[0].headElement.parentElement) { - tab.parent.children[0].parent.switchTab(tab.parent.children[0].headElement, true); - } - return; } -} +};