From 436bb7683d1a2595ba592e196a91aefccd9a309f Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 16 Feb 2021 09:50:11 -0500 Subject: [PATCH] Listen for before-quit-for-update to allow will-quit to use default flow (#2147) Signed-off-by: Sebastian Malton --- src/main/index.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index 50571a8862..c98595fa35 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -4,7 +4,7 @@ import "../common/system-ca"; import "../common/prometheus-providers"; import * as Mobx from "mobx"; import * as LensExtensions from "../extensions/core-api"; -import { app, dialog, powerMonitor } from "electron"; +import { app, autoUpdater, dialog, powerMonitor } from "electron"; import { appName } from "../common/vars"; import path from "path"; import { LensProxy } from "./lens-proxy"; @@ -167,14 +167,25 @@ app.on("activate", (event, hasVisibleWindows) => { } }); +/** + * This variable should is used so that `autoUpdater.installAndQuit()` works + */ +let blockQuit = true; + +autoUpdater.on("before-quit-for-update", () => blockQuit = false); + // Quit app on Cmd+Q (MacOS) app.on("will-quit", (event) => { logger.info("APP:QUIT"); appEventBus.emit({name: "app", action: "close"}); - event.preventDefault(); // prevent app's default shutdown (e.g. required for telemetry, etc.) + clusterManager?.stop(); // close cluster connections - return; // skip exit to make tray work, to quit go to app's global menu or tray's menu + if (blockQuit) { + event.preventDefault(); // prevent app's default shutdown (e.g. required for telemetry, etc.) + + return; // skip exit to make tray work, to quit go to app's global menu or tray's menu + } }); // Extensions-api runtime exports