diff --git a/src/main/index.ts b/src/main/index.ts index f109ea1536..1c5b80042c 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -26,10 +26,10 @@ import { initialize as initializeRemote } from "@electron/remote/main"; import * as Mobx from "mobx"; import * as LensExtensionsCommonApi from "../extensions/common-api"; import * as LensExtensionsMainApi from "../extensions/main-api"; -import { app, autoUpdater, BrowserWindow, dialog, Menu, powerMonitor } from "electron"; +import { app, autoUpdater, dialog, powerMonitor } from "electron"; import { appName, isIntegrationTesting, isMac, isWindows, productName } from "../common/vars"; import { LensProxy } from "./lens-proxy"; -import { IpcMainWindowEvents, WindowManager } from "./window-manager"; +import { WindowManager } from "./window-manager"; import { ClusterManager } from "./cluster-manager"; import { shellSync } from "./shell-sync"; import { mangleProxyEnv } from "./proxy-env"; @@ -61,7 +61,7 @@ import { FilesystemProvisionerStore } from "./extension-filesystem"; import { SentryInit } from "../common/sentry"; import { ensureDir } from "fs-extra"; import { Router } from "./router"; -import { getAppMenu, initMenu } from "./menu"; +import { initMenu } from "./menu"; import { initTray } from "./tray"; import { kubeApiRequest, shellApiRequest, ShellRequestAuthenticator } from "./proxy-functions"; import { AppPaths } from "../common/app-paths"; @@ -256,12 +256,6 @@ app.on("ready", async () => { LensProtocolRouterMain.getInstance().rendererLoaded = true; }); - ipcMainOn(IpcMainWindowEvents.OPEN_CONTEXT_MENU, (event) => { - const menu = Menu.buildFromTemplate(getAppMenu(windowManager)); - - menu.popup(BrowserWindow.fromWebContents(event.sender) as Electron.PopupOptions); - }); - logger.info("🧩 Initializing extensions"); // call after windowManager to see splash earlier diff --git a/src/main/initializers/ipc.ts b/src/main/initializers/ipc.ts index 206a1673db..196b4d1d34 100644 --- a/src/main/initializers/ipc.ts +++ b/src/main/initializers/ipc.ts @@ -19,7 +19,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import { BrowserWindow, dialog, IpcMainInvokeEvent } from "electron"; +import { BrowserWindow, dialog, IpcMainInvokeEvent, Menu } from "electron"; import { clusterFrameMap } from "../../common/cluster-frames"; import { clusterActivateHandler, clusterSetFrameIdHandler, clusterVisibilityHandler, clusterRefreshHandler, clusterDisconnectHandler, clusterKubectlApplyAllHandler, clusterKubectlDeleteAllHandler, clusterDeleteHandler, clusterSetDeletingHandler, clusterClearDeletingHandler } from "../../common/cluster-ipc"; import type { ClusterId } from "../../common/cluster-types"; @@ -30,10 +30,11 @@ import { catalogEntityRegistry } from "../catalog"; import { pushCatalogToRenderer } from "../catalog-pusher"; import { ClusterManager } from "../cluster-manager"; import { ResourceApplier } from "../resource-applier"; -import { WindowManager } from "../window-manager"; +import { IpcMainWindowEvents, WindowManager } from "../window-manager"; import path from "path"; import { remove } from "fs-extra"; import { AppPaths } from "../../common/app-paths"; +import { getAppMenu } from "../menu"; export function initIpcMainHandlers() { ipcMainHandle(clusterActivateHandler, (event, clusterId: ClusterId, force = false) => { @@ -148,4 +149,10 @@ export function initIpcMainHandlers() { return dialog.showOpenDialog(BrowserWindow.getFocusedWindow(), dialogOpts); }); + + ipcMainOn(IpcMainWindowEvents.OPEN_CONTEXT_MENU, async (event) => { + const menu = Menu.buildFromTemplate(getAppMenu(WindowManager.getInstance())); + + menu.popup(BrowserWindow.fromWebContents(event.sender) as Electron.PopupOptions); + }); }