Я пытаюсь разработать приложение с отдельным окном настроек (в электронном виде). Когда окно настроек открыто и главное окно закрыто, я хочу предотвратить закрытие главного окна и сфокусировать окно настроек.
Сейчас я делаю это следующим образом:
window.onbeforeunload = e => {
console.log(e);
if(settingsWindow) {
settingsWindow.focus();
e.returnValue = false;
}
else e.returnValue = true;
};
Это предотвращает перезагрузку окна, чего я не хочу.
Поэтому я прошу другой метод предотвращения или способ определить, является ли это перезагрузкой или закрытием.
Приветствие Ильи =)
EDIT / Решение:
используйте ipcMain
и ipcRenderer
для обработки всего с созданием окон в основном процессе. Там вы можете поймать и предотвратить событие close
.
MAIN.JS
const {ipcMain} = require("electron");
...
ipcMain.addListener("ASYNC_MSG", (event, arg) => {
switch(arg) {
case "OPEN_SETTINGS": createSettingsWindow(); break;
}
});
...
mainWindow.addListener("close", e => {
if(settingsWindow) {
e.preventDefault();
e.returnValue = false;
settingsWindow.focus();
}
else e.returnValue = true;
});
RENDERER.JS
const {ipcRenderer} = require("electron");
...
ipcRenderer.send("ASYNC_MSG", "OPEN_SETTINGS");