From 49e5445ccd4476a941744f574ffe7ed97e72ed8c Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Thu, 22 Oct 2026 23:23:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=96=B0=E5=BB=BA=E6=96=87=E6=A1=A3):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=BB=BA=E6=A0=87=E7=AD=BE=E9=97=AA?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/webui/ofdgo.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/assets/webui/ofdgo.js b/assets/webui/ofdgo.js index 0fa8843..1eb20fd 100644 --- a/assets/webui/ofdgo.js +++ b/assets/webui/ofdgo.js @@ -3544,12 +3544,17 @@ async function createDocument(event) { const request = {controller: new AbortController()}; tab.opening = request; el.createPanel.close(); - workspace.tabs.push(tab); - await activateDocumentTab(tab); - if (workspace.active === tab && !previous.state.doc && !previous.opening && !previous.state.dirty && !previous.error) { - workspace.tabs.splice(workspace.tabs.indexOf(previous), 1); - await releaseDocumentTab(previous); + const replace = !workspace.switching && !previous.state.doc && !previous.opening && !previous.state.dirty && !previous.error; + const index = workspace.tabs.indexOf(previous); + if (replace) workspace.tabs[index] = tab; + else workspace.tabs.push(tab); + if (!await activateDocumentTab(tab) && replace && workspace.active !== tab) { + workspace.tabs[index] = previous; + await releaseDocumentTab(tab); + renderDocumentTabs(); + return; } + if (replace) await releaseDocumentTab(previous); let accepted = false; setBusy(true, "正在新建文档", null, "正在新建文档", tab); try {