From a97874d0cdf48663362287874b6433109062b1f7 Mon Sep 17 00:00:00 2001 From: oxdc <29519076+oxdc@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:04:42 +0800 Subject: [PATCH] deduplicate in additional windows --- src/services/DeduplicateTab.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/services/DeduplicateTab.ts b/src/services/DeduplicateTab.ts index 20c84bb..649b9da 100644 --- a/src/services/DeduplicateTab.ts +++ b/src/services/DeduplicateTab.ts @@ -1,6 +1,16 @@ import { App, FileView, TFile, WorkspaceLeaf } from "obsidian"; import { loadDeferredLeaf } from "./LoadDeferredLeaf"; +function iterateRootOrFloatingLeaves( + app: App, + callback: (leaf: WorkspaceLeaf) => void +) { + const workspace = app.workspace; + const { rootSplit, floatingSplit } = workspace; + workspace.iterateLeaves(rootSplit, callback); + workspace.iterateLeaves(floatingSplit, callback); +} + export function deduplicateTab( app: App, file: TFile | null, @@ -8,7 +18,7 @@ export function deduplicateTab( ): WorkspaceLeaf | null { if (!file) return null; const targetLeaves: WorkspaceLeaf[] = []; - app.workspace.iterateRootLeaves((leaf) => { + iterateRootOrFloatingLeaves(app, (leaf) => { if (leaf.view instanceof FileView && leaf.view.file === file) { targetLeaves.push(leaf); } else if (leaf.getViewState().state?.file === file.path) {