From e6c991b8bbfd87f05ac602d28356368ae4353e51 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Thu, 23 Feb 2023 13:56:17 +0530 Subject: [PATCH] setup event emitter and api to attach event listener --- src/api/system.ts | 7 +++++++ src/main.ts | 2 ++ src/preload.ts | 2 ++ src/utils/events.ts | 8 ++++++++ 4 files changed, 19 insertions(+) create mode 100644 src/utils/events.ts diff --git a/src/api/system.ts b/src/api/system.ts index fb4d68264..abb4e1a20 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -20,6 +20,13 @@ export const registerUpdateEventListener = ( }); }; +export const registerForegroundEventListener = (onForeground: () => void) => { + ipcRenderer.removeAllListeners('app-in-foreground'); + ipcRenderer.on('app-in-foreground', () => { + onForeground(); + }); +}; + export const updateAndRestart = () => { ipcRenderer.send('update-and-restart'); }; diff --git a/src/main.ts b/src/main.ts index ecc48658d..9ba08291b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -20,6 +20,7 @@ import { initSentry } from './services/sentry'; import { setupLogging } from './utils/logging'; import { isDev } from './utils/common'; import { setupMainProcessStatsLogger } from './utils/processStats'; +import { setupAppEventEmitter } from './utils/events'; let mainWindow: BrowserWindow; @@ -82,6 +83,7 @@ if (!gotTheLock) { handleDownloads(mainWindow); handleExternalLinks(mainWindow); addAllowOriginHeader(mainWindow); + setupAppEventEmitter(mainWindow); }); app.on('before-quit', () => setIsAppQuitting(true)); diff --git a/src/preload.ts b/src/preload.ts index 32204839f..a3ef17f83 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -6,6 +6,7 @@ import { updateAndRestart, skipAppUpdate, muteUpdateNotification, + registerForegroundEventListener, } from './api/system'; import { showUploadDirsDialog, @@ -111,4 +112,5 @@ windowObject['ElectronAPIs'] = { muteUpdateNotification, generateImageThumbnail, logRendererProcessMemoryUsage, + registerForegroundEventListener, }; diff --git a/src/utils/events.ts b/src/utils/events.ts new file mode 100644 index 000000000..6ce259639 --- /dev/null +++ b/src/utils/events.ts @@ -0,0 +1,8 @@ +import { BrowserWindow } from 'electron'; + +export function setupAppEventEmitter(mainWindow: BrowserWindow) { + // fire event when mainWindow is in foreground + mainWindow.on('focus', () => { + mainWindow.webContents.send('app-in-foreground'); + }); +}