From b8db21e4eacdc8ccd72aa3935f7774f7bea164bb Mon Sep 17 00:00:00 2001 From: purocean Date: Tue, 10 Aug 2021 19:31:01 +0800 Subject: [PATCH] =?UTF-8?q?upd:=20=E4=BC=98=E5=8C=96=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=8F=98=E5=8A=A8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/components/FileTabs.vue | 3 ++- src/renderer/plugins/document-history-stack.ts | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/FileTabs.vue b/src/renderer/components/FileTabs.vue index 7224b7c6..e0d5cf0a 100644 --- a/src/renderer/components/FileTabs.vue +++ b/src/renderer/components/FileTabs.vue @@ -96,9 +96,10 @@ export default defineComponent({ } } - function handleMoved (payload?: { oldDoc: Doc }) { + function handleMoved (payload?: { oldDoc: Doc, newDoc: Doc }) { if (payload) { removeFile(payload.oldDoc) + switchFile(payload.newDoc) } } diff --git a/src/renderer/plugins/document-history-stack.ts b/src/renderer/plugins/document-history-stack.ts index d2ea68d7..3ce9fc54 100644 --- a/src/renderer/plugins/document-history-stack.ts +++ b/src/renderer/plugins/document-history-stack.ts @@ -51,6 +51,13 @@ export default { }) } + function removeFromStack (doc?: Doc) { + const newStack = stack.filter(x => ctx.doc.toUri(doc) !== ctx.doc.toUri(x)) + stack.splice(0, stack.length) + stack.push(...newStack) + updateMenu() + } + ctx.bus.on('doc.switched', (file?: Doc) => { if (file) { if (!ctx.doc.isSameFile(stack[idx], file)) { @@ -62,6 +69,9 @@ export default { updateMenu() }) + ctx.bus.on('doc.deleted', removeFromStack) + ctx.bus.on('doc.moved', ({ oldDoc }) => removeFromStack(oldDoc)) + ctx.action.registerAction({ name: backId, handler: () => go(-1),