diff --git a/packages/frontend/apps/electron/src/main/application-menu/create.ts b/packages/frontend/apps/electron/src/main/application-menu/create.ts index 80dde56c8f..f428b0b707 100644 --- a/packages/frontend/apps/electron/src/main/application-menu/create.ts +++ b/packages/frontend/apps/electron/src/main/application-menu/create.ts @@ -171,22 +171,6 @@ export function createApplicationMenu() { switchToPreviousTab(); }, }, - { - label: 'Switch to next tab (mac)', - accelerator: 'Command+]', - visible: false, - click: () => { - switchToNextTab(); - }, - }, - { - label: 'Switch to previous tab (mac)', - accelerator: 'Command+[', - visible: false, - click: () => { - switchToPreviousTab(); - }, - }, { label: 'Switch to next tab (mac 2)', accelerator: 'Alt+Command+]', diff --git a/packages/frontend/apps/electron/src/main/windows-manager/tab-views.ts b/packages/frontend/apps/electron/src/main/windows-manager/tab-views.ts index a5de578545..59aaa49f3d 100644 --- a/packages/frontend/apps/electron/src/main/windows-manager/tab-views.ts +++ b/packages/frontend/apps/electron/src/main/windows-manager/tab-views.ts @@ -734,6 +734,33 @@ export class WebContentViewsManager { app.on('before-quit', () => { disposables.forEach(d => d.unsubscribe()); }); + + const focusActiveView = () => { + if ( + !this.activeWorkbenchView || + this.activeWorkbenchView.webContents.isFocused() + ) { + return; + } + this.activeWorkbenchView?.webContents.focus(); + setTimeout(() => { + focusActiveView(); + }, 100); + }; + + app.on('browser-window-focus', () => { + focusActiveView(); + }); + + combineLatest([ + this.activeWorkbenchId$, + this.mainWindowManager.mainWindow$, + ]).subscribe(([_, window]) => { + // makes sure the active view is always focused + if (window?.isFocused()) { + focusActiveView(); + } + }); }; getViewById = (id: string) => {