From 2c20a1694134cced1f193173b2ed9d7c88d61938 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr>
Date: Thu, 24 Feb 2022 16:04:38 +0100
Subject: [PATCH] [dome] initialize theme wrt global settings

---
 ivette/src/dome/main/dome.ts | 14 ++++++++++++--
 ivette/src/renderer/index.js |  4 ----
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/ivette/src/dome/main/dome.ts b/ivette/src/dome/main/dome.ts
index f58edbeca4e..e735470e986 100644
--- a/ivette/src/dome/main/dome.ts
+++ b/ivette/src/dome/main/dome.ts
@@ -199,6 +199,11 @@ function windowSyncSettings(event: IpcMainEvent) {
 
 ipcMain.on('dome.ipc.settings.sync', windowSyncSettings);
 
+function applyThemeSettings(settings: Store) {
+  const theme = settings['dome-color-theme'];
+  if (typeof (theme) === 'string') setNativeTheme(theme);
+}
+
 // --------------------------------------------------------------------------
 // --- Patching Settings
 // --------------------------------------------------------------------------
@@ -234,8 +239,7 @@ function applyStorageSettings(event: IpcMainEvent, args: Patch[]) {
 function applyGlobalSettings(event: IpcMainEvent, args: Patch[]) {
   const settings: Store = obtainGlobalSettings();
   applyPatches(settings, args);
-  const theme = settings['dome-color-theme'];
-  if (typeof (theme) === 'string') setNativeTheme(theme);
+  applyThemeSettings(settings);
   BrowserWindow.getAllWindows().forEach((w: BrowserWindow) => {
     const contents = w.webContents;
     if (contents.id !== event.sender.id) {
@@ -477,6 +481,12 @@ function createPrimaryWindow() {
   const cwd = process.cwd();
   const wdir = cwd === '/' ? app.getPath('home') : cwd;
   const argv = stripElectronArgv(process.argv);
+
+  // Initialize Theme
+  const globals = obtainGlobalSettings();
+  applyThemeSettings(globals);
+
+  // Create Window
   createBrowserWindow({ title: appName }, argv, wdir);
 }
 
diff --git a/ivette/src/renderer/index.js b/ivette/src/renderer/index.js
index 1ad7bfec482..b7fa5b20332 100644
--- a/ivette/src/renderer/index.js
+++ b/ivette/src/renderer/index.js
@@ -40,7 +40,6 @@
 // Enable live-editing in React:
 import 'react-hot-loader/patch' ;
 import React from 'react' ;
-import { ipcRenderer } from 'electron';
 import {
   setApplicationWindow,
   setPreferencesWindow,
@@ -59,9 +58,6 @@ import Preferences from './Preferences' ;
 // Define the application main components for each window:
 setApplicationWindow(Application);
 setPreferencesWindow(Preferences);
-ipcRenderer.send('dome.ipc.settings.window', []);
-ipcRenderer.send('dome.ipc.settings.global', []);
-ipcRenderer.send('dome.ipc.settings.storage', []);
 
 // Mark the main application reloadable and enable live updates:
 module.hot && isApplicationWindow() &&
-- 
GitLab