From 51848ff6c3de266aaddf477035d726750f5e0045 Mon Sep 17 00:00:00 2001 From: pengx17 Date: Mon, 5 Aug 2024 08:03:12 +0000 Subject: [PATCH] fix(electron): allow close pinned tab (#7732) --- .../electron/src/main/windows-manager/context-menu.ts | 3 +-- .../electron/src/main/windows-manager/tab-views.ts | 9 +++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/frontend/electron/src/main/windows-manager/context-menu.ts b/packages/frontend/electron/src/main/windows-manager/context-menu.ts index 01ba7890c0..5cb88d4e92 100644 --- a/packages/frontend/electron/src/main/windows-manager/context-menu.ts +++ b/packages/frontend/electron/src/main/windows-manager/context-menu.ts @@ -10,7 +10,6 @@ import { export const showTabContextMenu = async (tabId: string, viewIndex: number) => { const workbenches = WebContentViewsManager.instance.tabViewsMeta.workbenches; - const unpinned = workbenches.filter(w => !w.pinned); const tabMeta = workbenches.find(w => w.id === tabId); if (!tabMeta) { return; @@ -63,7 +62,7 @@ export const showTabContextMenu = async (tabId: string, viewIndex: number) => { }, }, - ...(unpinned.length > 0 + ...(workbenches.length > 0 ? ([ { type: 'separator' }, { diff --git a/packages/frontend/electron/src/main/windows-manager/tab-views.ts b/packages/frontend/electron/src/main/windows-manager/tab-views.ts index 2c3fa86660..4b997a52b8 100644 --- a/packages/frontend/electron/src/main/windows-manager/tab-views.ts +++ b/packages/frontend/electron/src/main/windows-manager/tab-views.ts @@ -125,6 +125,7 @@ export type AddTabOption = { * Whether to show the tab after adding. */ show?: boolean; + pinned?: boolean; }; export class WebContentViewsManager { @@ -328,11 +329,6 @@ export class WebContentViewsManager { return; } const targetWorkbench = this.tabViewsMeta.workbenches[index]; - - if (targetWorkbench.pinned) { - return; - } - const workbenches = this.tabViewsMeta.workbenches.toSpliced(index, 1); // if the active view is closed, switch to the next view (index unchanged) // if the new index is out of bound, switch to the last view @@ -398,6 +394,7 @@ export class WebContentViewsManager { } : undefined, }; + option.pinned ??= false; const workbenches = this.tabViewsMeta.workbenches; const newKey = this.generateViewId('app'); @@ -422,7 +419,7 @@ export class WebContentViewsManager { activeViewIndex: 0, views: views, id: newKey, - pinned: targetItem?.pinned ?? false, + pinned: option.pinned, }; this.patchTabViewsMeta({